Financial market replicator and simulator

ABSTRACT

A financial market replicator and, simulator, intermixes and records data streams of real time financial market data. The FMRS replays such recorded data to simulate the real time financial market(s) in a manner that represents substantially the entirety of information relating to the financial market(s) such that an observer would have difficulty differentiating between the simulator playback of the data and real time data. A user may employ the playback as a research and training tool for developing and executing trading strategies. A user may then determine if the trading strategy would have been successful. In addition, a user may alter the recording and playback parameters to provide various opportunities for studying market activity and/or altering the level of challenge of the simulation. A user may also freeze the simulator playback in order to explore the behaviors of the market&#39;s participants and related securities.

RELATED APPLICATION DATA

The present application is a continuation of U.S. patent applicationSer. No. 12/592,291, filed on Nov. 20, 2009, which claims the benefit ofU.S. Provisional Application Ser. No. 61/116,347, filed Nov. 20, 2008,the disclosures of which are herein incorporated by reference in itsentirety.

TECHNICAL FIELD

The present invention generally relates to the analysis of financial andsecurities market activity, and, more particularly, to a system andmethod of replicating and simulating financial markets using actualfinancial market data combined with user settings and metadata toenhance market research, analysis, trading strategies, and tradingskills.

BACKGROUND OF THE INVENTION

In a securities market, shares of stock in corporations (and optionsthereon), commodity futures (and options thereon), currencies, bonds andthe like are commonly traded at financial market centers or exchanges.Other traded items can include, but are not limited to, index trackingfunds, mutual funds, derivatives, etc. For simplicity, the followingdiscussion will be primarily in connection with the purchase and sale ofcorporate stock, but the principles set forth may be applied to anypublic or private exchange traded item.

Within a market center or exchange, traders buy and sell securities. Tomaximize the profit taken from the securities market, traders oftentrack and analyze certain information to determine what moment isadvantageous to sell or buy a particular security. Traditionally,traders have tracked information derived from the “floor” of exchangessuch as the New York Stock Exchange (NYSE) and American Stock Exchange(ASE), electronic exchanges such as the National Association ofSecurities Dealers (NASDAQ), futures exchanges such as the ChicagoMercantile Exchange, private market maker exchanges, and the like. Eachexchange makes available certain data to the public, and certain data tothe market makers associated with the exchange, either for free or via apaid subscription service. For example, this data may include thereporting of trades, trade times, trade volumes, bids, asks, bidvolumes, ask volumes, and various other transactional information orpre-transactional information, in the form of “Level I”, “Level II” and“Level III” information.

The nature of Level I, Level II and Level III information is known inthe art. Briefly, Level I information for a particular securitytypically includes, but may not be limited to, the current trade price(i.e., last trade), the current trade volume, the total volume of sharestraded during the trading session, the price to earnings (P/E) ratio,the previous trading day's closing price, the present day's openingprice, the high and low prices for the day and for the previous 52weeks, the change from the prior closing price, the lowest ask price(inside ask), the highest bid price (inside bid), the earnings pershare, the market capitalization, the dividend paid per share, thedividend yield, news items and articles whether textual, audio, orvideo, and so forth. Also available are records of historicalperformance, which can be displayed graphically on a trade by tradebasis or aggregated over periods of time ranging from fractions ofseconds to years. Also available are statistics for an entire exchange,such as total volume of shares traded and statistics for calculatedmarket indices, such as the Dow-Jones Industrial Average (“The DOW”),the NASDAQ Composite, the Standard and Poor's 500 (“S&P 500”), theRussell 2000, sector indices, etc.

Level II information for a particular security typically includes eachmarket maker, each ECN, and each regional exchange having an open (oractive) bid or ask, the time when the bid or ask was placed (alsoreferred to respectively as bid time and ask time), the size of the bidor ask (i.e., number of shares, often reported in lots of 100) and theprice of the ask or bid.

Level III information for a particular security includes everything thatthe other two levels do, plus it allows a particular market maker to gointo an exchange's system and change his bids and offers and size on thestocks in which he makes a market or places an order.

This information can be transmitted electronically in near real time(i.e., almost simultaneously with actual market activity) to computerworkstations or computer servers for traders and/or computerized tradingsystems to view and analyze. Trading information also may be recordedand accessed subsequently for at least a given period of time,sometimes, depending on the source, going back days, months, or years.Such information commonly is referred to in the art as ElectronicHistorical Financial Data (EHFD).

The practice of saving EHFD information is well established. EHFD istypically transactional in basis, and contains a record of trades thathave occurred over a defined period of time. Each tradable financialsecurity is typically kept in its own separate data file. For example, aseparate data file would be kept for Microsoft trades apart from, HomeDepot trades. This practice is similarly used for various other types offinancial securities, instruments, and indices with separate files fordifferent items that are traded whether a given item be a stock, a bond,or a futures contract, or index.

EHFD is typically saved in files consisting of formatting informationand data records. Each record in the file typically contains variousfields of information for a specific interval of time. The granularityof the time interval can be as small as a record for every trade. Othertypical time granularities for the records are 1 minute, 5 minute, 10minute, 15 minute, 30 minute, 60 minute, day, week and month. Customtime interval aggregations can also be kept. The record fields aretypically security symbol, delivery month, option expiration, date,time, open (first trade), highest, lowest, close (last trade) and tradevolume.

Relatedly, financial market data may be run through an Analytics andCharting Software Program (ACSP) for analyzing and displaying marketinformation, and creating analytic data. Analytic data is derived fromand used in conjunction with financial data. Analytic data is derived byapplying various formulae and algorithms to the types of data asdescribed above. Such analytic data is well known in the art. It is vastin scope, and typically provides for a means for user customization byallowing the user to change the parameter values of the formula andalgorithms. Since time is usually of the essence in trading, mostanalytic data is calculated and updated in real time to reflect thecurrent market. The process of updating of analytics as new financialinformation arrives is complex. The updating process often requires theuse of intermediate variables. Intermediate variables are analytic datathemselves, but are typically only interesting in that they arenecessary to update other analytic data. Analytic data goes by manynames, known within the art, depending upon how it is used: indicator,index, study, system, system indicator, or alert criterion. The commonfeature of all analytic data is that it is data derived from the rawfinancial data.

An example of an analytic data is a simple moving average. A specificanalytic data point might be the average of the last five (5) trades ofshares of Microsoft at 12:37:40 PM on Sep. 18, 2009. To compute thisdata point from a table of trades involves identifying the trades andsumming the last 5 trade prices. The sum is an example of anintermediate variable, as are each of the trades in the sum. The averageis obtained by dividing the sum by 5. To determine this same average amoment later, after a new trade has occurred, one may subtract theoldest trade from the sum, add the new trade to the sum, and divide bythe sum by 5. Such a method of obtaining new information, and updatingan analytic, possibly using its previous value, and possibly usingintermediate variables, is known in the art as an update formulae orupdate algorithm.

ACSP tools are known in the art and are utilized in connection with thereceipt, analysis, and display of real time and/or historical financialmarket data. An ACSP may derive and display analytics, bid/ask, trade,and price information from the Level I and/or Level II data for one ormore securities. Such market information, and analytics may be useful totraders by providing indications of price or other trends for thefinancial securities.

In addition to market information provided by the exchanges, a varietyof news sources also generate information, whether textual, audio, orvideo, that may be relevant to securities trading. News items such asearnings reports, mergers and acquisitions reports, product pressreleases, SEC filings and various other newsworthy events may occur fornumerous securities on any given day. Such events may be reported in avariety of print, broadcast (e.g. television and radio), Internet, andother media.

Another type of information which traders find useful for communicationand training is user experience information. It is not uncommon fortraders to gather as clubs, or in forums to discuss their views on themarkets, and their trading ideas and experiences. It is also notuncommon for traders to spend significant amount of money for training,advice, both on the markets, and on methods of trading, and varioustrading tools and resources. The user experience in a typical ACSP isquite configurable, and the outcome of a trading session depends can beenormously dependent upon how the available resources of the ACSP areinitially configured, and then how they are subsequently manipulated bythe user during trading. Traders typically wish to avoid, and if theycannot avoid, avoid repeating, a particularly disastrous tradingexperience. The actual, intended, or mistaken user actions during atrading session can be useful for communication and training. Being ableto capture these trading sessions may be of enormous benefit to atrader. Once captured, this user experience information can be edited,recorded, and shared. After-the-fact narrative and active user metadatamay also be added. Collectively, user experience data and user metadatagreatly broaden the scope of what an ACSP can do and greatly deepen theusefulness of the user experience.

Many traders are interested in short term upward or downward pricemovements for selected securities, looking for perceived marketimbalances, and often executing numerous trades in any given tradingday. Because of these market imbalances, sometimes opportunities existto make a significant profit over a very short time frame. There aremany different events that can cause a market imbalance. The followingare a few of many possible examples. Some imbalances may exist because alarge position must be liquidated quickly causing supply to temporarilyexceed demand. Some market imbalances may exist because a news reportwas erroneous. This can cause ill-informed market participants tomis-value the security. Other market imbalances may exist because ofstale information. For example, the current valuation of the securityreflects an assumed cost of a competing or complementary product whichhas changed. A market imbalance may simply occur because the security isonly being initially offered and has not had an opportunity to weigh inmarket sentiment. Some kinds of market imbalances resolve quickly, suchas erroneous news. Others may be caused by governmental policies whichmay continue for years.

Predicting upward and downward price movement, however, is difficult tosay the least. To profit from such perceived imbalances, the traderneeds to know whether patterns of imbalance repeat and can beprofitable. To do so, traders seek to become proficient in both thecreation and the execution of a trading strategy which encompass theidentification and contingent execution of trades. Since theidentification, estimation of profit, and estimate of time-frame arecontingent on ones understanding of the underlying market imbalance andon the behavior of the other market participants, traders arecontinuously looking to develop or modify their trading strategies andtrading techniques. Despite the continuous effort to develop new andbetter trading strategies, there is no known convenient and effectiveway to test whether any given strategy will be likely to succeed underactual real time market conditions. Of course, a trader may simply starttrading in accordance with the strategy to see if it works, but, giventhe complexities of the markets, which are virtually innumerable, onewould do so at great financial risk since each dollar may be lost onlyonce.

Conventionally, one of the primary methods used by traders to test andvalidate a trading strategy is to “paper trade”. Typically a traderwould paper trade by using EHFD files with a computer software programdesigned to back test trading strategies. A trader would run theiranalysis only on a predetermined market or security, or only on groupsof predetermined markets or securities. A trader will create a “dummy”account with dummy cash and dummy credit balances. A dummy accountpermits a trader to execute simulated trades without using real money.In this manner, after a testing period (which may comprise minutes,hours, days, months, etc.), a trader can determine if he or she is ableto identify a pattern, execute the related trades, and determine whetheror not the trading strategy made enough money to justify the risks hadthe simulated trades actually been executed.

Although this testing method can determine whether the trading strategywould have succeeded or failed during the test period, little confidencecan be ascribed to the outcome. For example, a trader may not be able todetermine what aspects of the strategy led to success or failure, orwhether some market factor unusual to the test period affected theefficacy of the strategy. The use of “dummy” accounts, therefore, hasproven deficient insofar as a trader may not attain the necessaryinformation to analyze a trading strategy, and to adjust the executionof the strategy as warranted.

Using conventional trading systems, a trader could not effectivelydevelop a benchmark for their trading ideas from which they couldpractice with the exact same market conditions. Regardless of theresults they got, since they were using EHFD files, one at a time, atrader could never develop an understanding of the interactive,collective, cause and effect forces that exist in the real market. Theexisting state of the art, and methods of looking back at just on EHFDfile at a time, does not capture how financial markets actually work.

Because of their dynamic and ever changing nature, financial markets areelusive. They never exactly repeat themselves. A trader has not beenable to effectively reproduce and practice his ideas and tradingtechniques on the exact same conditions and interdependencies across amarket. Furthermore, much of trading depends upon the non-automaticaction of the trader himself or herself. Where he or she focused, whatmarkets were being examined, what analytics were employed, whatheuristic judgments were made, and what actions were taken, all dependin a sensitive way on the user experience. Having an exact record ofwhat the market did is only a part of what happened. The other part ishaving a record of what the trader did.

There have been previous attempts to capture and replay market activity,but they have proven deficient in providing traders content in a formatusable to improve their trading strategies. They have not provided atrader with an observation window into the detailed and collectivebidding process that takes place prior to the actual trade taking place.The NASDAQ has created “NASDAQ Market Replay”. However, NASDAQ MarketReplay is very limited in scope. It allows a user to select a oneparticular stock registered on the NASDAQ and to select a date and atime span on that date for which to replay market activity. The user isthen presented with all of the information that was transmitted by theNASDAQ for that stock only and to replay it.

There have also been other attempts to capture and replay marketactivity, but these have all been limited in scope to only a few sharesat a time. Conventional capture and replay systems have not been able tocapture and replay entire markets at one time. Some have captured alimited amount of user experience data such as the analytics applied.Video recordings of actual trading have been made. Prior to thisinvention, nothing has captured the full user trading experience in acommunicable, and persistent way, with the sufficient detail andfidelity needed by a student in the art of trading.

SUMMARY OF THE INVENTION

There is a need in the art for an improved system and method that willallow a trader to practice their trading skills over and over again on afixed set of real time market data and conditions. Until this invention,a trader has not been able to replicate essentially the exact real timeconditions of substantially an entire market. With this invention atrader can now develop, refine, learn, and practice their tradingskills. A trader has not been able to freeze the action of an entiremarket before, but with this invention, through the ability to freeze amarket playback, or playback the market at slower than real-time speeds,a trader is now able to investigate, and hopefully discover, the realtime interactive and collective effects at work in financial marketsusing research based upon the interaction of various analytics, pricesand market maker activity for multiple securities and/or multipleexchanges as they occur coincident in real market time. The presentdisclosure describes a financial market replicator and simulator (FMSR)that assists traders to research, develop and test strategies fortrading in financial markets, and a related method for the replicationand simulation of one or more real time financial markets.

As one knowledgeable in the art understands, actual trading requires atrader to take actions, and that taking these actions requires thetrader's time and attention. The art of successful trading requires thata trader develop proficiency in several different action areas, and thenbring the skill sets from all of these action areas together in a fluidand integrated manner. The following example of a trading process is notmeant to be comprehensive, but is meant to be illustrative of a processfor trading.

Some of the actions taken in the trading process require monitoring anddecision making by the trader. Other actions relate to the actualmechanics and process for making a trade. The common element of all ofthe different actions taken by a trader is that they all take thetrader's time. These actions include but are not limited to thefollowing. The trader must decide whether the current market conditionsare ripe for trading. The trader must decide what category or categoriesof securities to trade such as stocks, commodities, currencies, bonds,etc. and then within a category, for example financial stocks or Asianbonds, one or more specific securities. The trader also has to decide onthe analytics to be applied to each security, either on a security bysecurity basis, globally for all securities, or combinations thereof.The trader then needs to determine what values or changes in the valuesof the analytics, or price action itself, warrant attention. If thosevalues or prices are reached or exceeded, a trader would normally needto be alerted in some manner by their ASCP program, most of which havesome sort of method to alert the trader when pre-defined conditions aremet.

Before taking action, however, a prudent trader would want to check theaccuracy of the information that triggered the alert. Not every piece ofinformation transmitted by an exchange is accurate. It is perfectlynormal to expect incorrect information to be transmitted by theexchanges on a real time basis. Therefore, before deciding to make thetrade, a prudent trader would want to check on the accuracy of the data.

Once the accuracy of the data is determined to be reasonable, the traderwould typically want to confirm their trading signals. The trader thenhas to initiate the process of taking the action of placing the tradeorder. The trader's process may involve calling their broker orcolleague to solicit an opinion. The trade order can be placed by voiceby calling a broker, which of course, also, takes time. Most tradersprefer to place their order electronically, which is typically fasterthan by voice. Once an initial order is placed, the trader then has towait to find out whether or not it was filled, and if filled, at whatprice. Not all orders are automatically filled. Once filled, the tradethen has to be monitored to protect against losses, or to captureprofits. This may involve increasing or decreasing their position size.This trade monitoring process also takes the trader's time andattention. While a trade is still active and in process, most traderswill be looking for one or more other trading opportunities, which willrequire the trader to do all of the above pre-trade analysis, post trademonitoring, and decision making. It is common for a trader to haveseveral open positions at any one time.

From the above descriptions, it becomes readily apparent that in orderto become proficient in trading, a trader needs to be able to practice,develop and refine all of the skill sets required for successful realtime trading. Using conventional trading approaches, the problem thathas generally precluded traders from practicing and developing theseskills is the elusive nature of financial markets. From day to day,nothing is exactly the same in the markets. Conditions, although theymight appear similar, are never the same. A trader could never be surethat the decision and action matrix made from one market session wouldwork in another market session.

Good research in any field of endeavor requires indentifying andinvestigating relevant variables. If variables are always changing, itis impossible to establish a baseline from which understandings can bedeveloped and determinations can be made with a degree of confidence.Without a baseline point of reference, one cannot know which variable ismore important.

The present invention allows a trader to practice his or her analyticaland trading techniques over and over again, replicating substantiallythe exact same real time market conditions, setup and user experiencethrough their ACSP. A trader can then, in a scientific way, by usingtheir ACSP change one analytic variable at a time, look for oneinterrelationship at a time, and see how it affects their decisionmaking matrix. Through careful scrutiny of the markets at reduced speed,and with the ability to freeze playback, one can attempt to uncoverthese interrelationships and know when to apply, withhold, or discardvarious trading strategies. A trader can continue to practice onsubstantially the exact same market conditions as many times as theyneed to until they feel they have developed an understanding of theinterrelations of those market conditions, have refined their selectionof which analytics to use, and have determined which alert values to usefor the analytics for trading decisions. Once traders feel they havemastered one market session, they can then test the viability of thoseideas on other market sessions. They can continue to do this until theydevelop the confidence to trade successfully in a variety of differentmarket conditions.

As seen from the above illustrative description of a trading process,the conventional back-testing methods heretofore available to tradersare inadequate. They fail in realistically replicating a market as itdynamically unfolds. More importantly, they fail in allowing a trader topractice on, and replicate the human decision making and physicalactions required for successful trading.

The Financial Market Replicator and Simulator (FMRS) records at leastone real time incoming data stream for financial markets in a mannerthat represents substantially the entirety of information relating tothe one or more financial markets. The incoming data stream(s) may beinformation transmitted from at least one exchange, may includeinformation from a plurality of exchanges, and may include informationfrom at least one news source. The information transmitted from the atleast one exchange may include Level I, Level II and Level IIIinformation for a plurality of securities. The FMRS may intermix thereal time data from one or more exchanges and one or more news sources,into a combined market data stream.

There is substantially no inherent limit on the number of separate datastreams that may be intermixed by the FMRS. The FMRS may intermix,combine, and record financial market information from of essentially allof the electronically distributed markets in the world to enable thecreation of full or partial global market recordings. These globalmarket recordings can cover any periods of time of market activity, andkeep track of all simultaneous global trading. In one embodiment, amarket recording would cover a 24 hour period starting at midnightGreenwich Time. Other length recordings may be made, and they may bereferenced to any other world time zone. Also, the global recordings canbe limited to specific types of securities only, such as stocks,futures, foreign exchange, options, etc. They can also combine any orall of the different types of securities into a market recording.

There are many potential benefits that may accrue to a trader from theplayback of these partial or full global market recordings. Using thefeatures of the FMRS and/or ACSP, as fully described elsewhere in thisapplication, would enable a trader, for one or more specific securities,to investigate, for example, what was happening in the Japanese, Britishand US stock exchanges at the same instant in time. This invention, forthe first time, would give a trader the opportunity to research anddiscover hitherto unknown relationships between markets worldwide. Amongother things, the trader could monitor and study cash flows forsecurities between one or more exchanges, or cash flows betweendifferent markets. It could allow for research into both thetransactional and market maker activities internationally.

The simulator plays back the recorded market data stream through theACSP, replicating the financial markets with a substantial degree ofrealism. In addition, during playback, full functionality of an ACSP maybe retained so the trader may be distinctively alerted to the results ofstatistical analysis on live market data while working within asimulation.

A user may employ the playback of the recorded market data stream as aresearch and training tool for developing and testing tradingstrategies. During playback, for example, a user may open multipleanalytic windows for one or more securities, each containing charts,Level II windows, “time, sales and bid/ask quote windows”, quotewindows, position trackers, etc. The number of windows a user can openis limited only by the memory and processing power of the user'scomputer system. As long as the security is contained within therecorded data stream, one or more of any of the above analytic windowscan be opened for a security. By recording the data stream in itsentirety a trader is not handicapped by his/her selection of focus atthe time the recording was made, nor by not having pre-planned to studycertain securities in advance.

As is well known in the art, users typically have their ACSP set up withseveral different windows simultaneously opened. Some windows may beminimized, some fully or partially opened, some layered one on top ofthe other, etc. Although a user may be subscribed to a data feed with100, 250, 1,000, or even more securities, as a practical matter, becauseof the physical limitations of the computer display(s), the user istypically limited to having just a few of the windows visible forreviewing analytics and charts at any given time. Regardless of howlarge, or how many computer displays a user has, even if it weretheoretically possible to have a window open for each security, it isimpossible for a user to focus their eyes on and mentally track all thatdata simultaneously. Accordingly, users tend to only have as manywindows open as they can actually see and mentally track.

Accordingly, with the FMRS running in simulation mode, the user is notlimited to displaying information only for those securities that werebeing displayed in open windows in the ACSP during the recording. Nomatter how many securities a user has in their data feeds, all of thedata for each security is recorded by the FMRS.

Based upon the information presented during playback, a user, forexample, may input simulated trades of securities to test a tradingstrategy. Because the best available price to buy (the bid) and to sell(the ask) always differ, actual trading involves receiving a trade pricewhich is almost always a little worse for the retail trader. In theindustry, this is called slippage or bid-ask spread. These systematiclosses often eclipse the net result of trading. To know if a tradingstrategy is worthwhile, it is then necessary to estimate the slippageand deduct it from hypothetical simulated profit and losses. This isdone by comparing a simulated trade order against the Level II marketmaker bid/ask data. Although this is only an estimate, for researchpurposes to determine trading profitability, a trader may use the bestmarket maker bid/ask prices, and the quoted volumes, to be the tradefill. If the quoted volume is inadequate, additional market maker quotesare available to be included. Since the FMRS records Level II marketmaker bid/ask data, a trader can get a realistic expectation of what theactual trade fill prices and associated volumes might be. Withoutcorrelating a simulated trade against the actual bid/ask prices andvolumes existing at the moment of the trade, it is quite possible to getfalse and misleading simulated trading results. The simulator wouldapply the recorded data to those trades to generate simulated resultsfor the trades. A user may then determine if the trading strategy wouldhave been successful.

In addition to testing for simulation profitability, a trader needs totest for other things. As traders run and re-run simulations, they willlikely find there were times when they did not execute the tradingaction points correctly, and they will make refinements to alerts,indicator selection, inter-market relationships, etc. These things needto be validated and rehearsed before trading in the real-time market.The trader can validate and rehearse all of the above by using theplayback features of the FMRS. A trader may alter the simulator playbackby pausing, rewinding, fast-forwarding, adjusting the speed of theplayback, and the like. Thus, a novice trader may pause or slow down thesimulator playback to study the market data moment by moment, while anexperienced trader may speed up the simulator playback to see if thingsare unfolding as they had expect, or simply for a more challengingexperience. Also, the user may “re-run” the simulation using differenttrades, and may attempt to identify market factors or peculiarities thatoccurred during the simulation that affected the outcomes.

A user may redo a simulation to test different trading strategies for agiven period of the market. For example, if a particular trading daypresented high volatility and otherwise challenging market conditions, auser could “replay” the day over and over to test various strategies.Once a trader has practiced on a particular market session, to validatethe efficacy of their techniques, he/she can then take the lessonslearned and practice on different market sessions. To be successful,traders need to develop trading techniques that work across differentmarket conditions.

In one embodiment, the recorded real time market data may be transferredto conventional storage media (CDs, DVDs, Blue-Rays, flash drives, etc.)and distributed to multiple users so that each user can test strategiesfor a common period of the market. The recorded real time market datastream also may be downloaded or distributed to multiple users via anetwork connection, such as over the Internet.

An exemplary use of the FMRS is as an instructional, training, andmentoring tool. Since, the FMRS allows users to run and rerun areplicated market as many times as they choose, professional traders,trainers and brokers, which we will hereafter refer to collectively asinstructors, can develop lessons for other students of the art. Toreplicate a market experience, the FMRS allows a user, or instructor, toinsert, edit, delete and record time stamped metadata. The metadata canbe in the form of notes, voice narration, mouse movements, etc. It isalso envisioned that metadata could be any type of media which could becaptured and replayed, such as television footage, computer screen videocapture footage, emails, instant message conversations, web browsinghistory, etc. Metadata can be captured either during the recording of areal time trading session, or as it is later played back through themarket simulator. On subsequent replays a user may change, add ordelete, and then save, user generated information to the marketrecording. Some of the metadata can be classified as active metadata, inthat it causes actions to take place during playback, instead of justbeing narrative or informative in nature. For example, an instructormight narrate that for described reasons the student (trainee) shouldopen a particular information display within the ACSP. The trainingrecording might further have active metadata to determine if the traineehas accomplished the instruction, and if not, might trigger additionalnarrative metadata and/or could contain active metadata to cause thedesired information display to open anyhow. Another example of atraining recording might offer expert narration based as the studentexplores. In these ways, an instructor can not only replay a marketrecording, but can also develop and add time sequenced instructionalmaterials to an existing market recording. For example, in the course ofa normal trading day an instructor may be using the ACSP in real time tofollow the market. The instructor may add text notes, voice notes,studies and annotations to charts, and new analytic alerts as the dayproceeds. Furthermore, while the trading day unfolds, the instructor maygrow interested in a particular security and email a friend or colleaguefor an opinion. He or she may also initiate an Internet Messaging Chat(IMC) with a few other associates at the firm, where notes andobservations on that security, or other market activity, are exchangedthroughout the trading day. While reading a comment from an associate inthe IM chat about a major change going on in the government that mightaffect several of the securities in which he is interested, theinstructor may open a web browser to do an internet search on governmentpolicy being considered or voted on that day. All of these analyticactivities are essential to the instructor's trading methodology.

Skills and workflow such as those just described are difficult to teachto students of the art. Professional instructors may not evenconsciously realize all of the background information they gather andprocess away from the ASCP. However, collectively, all of thisinformation becomes part of the instructor's window on the market, andcan be recorded by the FMRS as they happen by putting the FMRS intolearning mode, and then be replayed as part of a simulation or traininglesson by putting the FMRS into teaching mode.

As another example, an instructor can use the ACSP in an investigationof a set of securities. He can open charts and other windows for thosesecurities, annotate the charts with analytics and studies, post noteson the screen, add a verbal narration track, and discuss the market asit unfolds. For the purpose of such courses, the instructor can utilizeany of the functionality of the FMSR, including Freeze Points, WayPoints, slowing down and speeding up the simulation, etc. The user thencan play the instructor's lesson which displays the instructor'smetadata, or continue the simulation without the instructor's metadata.

Yet another way to use the FMRS in training is for a course instructorto record his or her strategies, analytics, alerts, notes and initiatedtrades to a certain point of time in the simulation, then create a userwaypoint, and save his user changes to the market recording. Theinstructor can then give the students a period of time to take as a testin class, or to take with them as homework, to analyze the marketsimulation up to the user waypoint. Students could then analyze theinstructor's recording, replicate what the instructor had done so far inthat trading session, and continue trading on their own for the rest ofthe market simulation playback. At the end of the simulation, studentscan save their work to be given back to the instructor for grading.

The above are just a few examples to illustrate how the FMRS is morethan just a historical display system, and more than just a marketreplicator and simulator. It is also a training tool that goes wellbeyond anything available before in conventional systems.

In accordance with the above, aspects of the invention include anexemplary method for replicating activity occurring in connection withat least one financial market. The method includes receiving a marketdata stream with an electronic receiver over a network interface for apredetermined symbol set containing symbols that are traded over the atleast one financial market, wherein the predetermined symbol setincludes symbols to which a user of the system has a subscription toreceive financial market data as the financial market data becomesavailable, the market data stream includes market activity data itemsfor the symbols in the predetermined symbol set. The method furtherincludes maintaining a time order of time values associated with eachdata item so that the time order of the data items replicates a timeorder of market events represented by the data items with respect tothat at least one financial market, and recording all of thetime-ordered data items from the market data stream onto a computerreadable medium so that the recorded data, when played back, representsa playback of the entirety of the market data pertaining to thepredetermined symbol set. Another aspect of the invention is anexemplary system for performing the above method.

Another aspect of the invention is another exemplary method forreplicating activity occurring in connection with at least one financialmarket. The method includes receiving a market data stream with anelectronic receiver from a data source for a predetermined symbol setcontaining symbols that are traded over the at least one financialmarket, wherein the predetermined symbol set includes symbols to which auser of the system has a subscription to receive financial market dataas the financial market data becomes available, and the market datastream includes market activity data items for the symbols in thepredetermined symbol set. The method further includes maintaining a timeorder of time values associated with each data item so that the timeorder of the data items replicates a time order of market eventsrepresented by the data items with respect to that at least onefinancial market, and playing back the time-ordered data items from themarket data stream through a financial market analytics and chartinguser interface so that the playback represents the entirety of themarket data pertaining to the predetermined symbol set. Another aspectof the invention is an exemplary system for performing the above method.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic block diagram depicting operative portions of anexemplary financial market replicator and simulator.

FIG. 2 is a schematic diagram depicting operative portions of anexemplary electronic financial market analysis and trading system.

FIG. 3 is a schematic diagram of an exemplary network for executing afinancial market replicator and simulator.

FIG. 4 is a schematic block diagram depicting an exemplary intermixingof the financial market data from stock exchanges within a country.

FIG. 5 is a schematic block diagram depicting an exemplary intermixingof the financial market data from futures exchanges within a country.

FIG. 6 is a schematic block diagram depicting an exemplary intermixingof the financial market data from financial exchanges, along with thenews for securities on those exchanges, within a country.

FIG. 7 is a schematic block diagram depicting an exemplary intermixingof the financial market data and news from countries within a continent.

FIG. 8 is a schematic diagram of an exemplary intermixing of financialmarket data and news from continents around the world.

FIG. 9 is a flow chart depicting an exemplary method of replicating afinancial market.

FIG. 10 is a schematic diagram of an exemplary graphical user interface(GUI) for an ACSP.

FIG. 11 is a schematic diagram of an exemplary GUI for a financialmarket replicator and simulator (FMSR).

FIG. 12 is a schematic diagram of an exemplary GUI for a marketreplicator component of the FMRS.

FIG. 13 is a schematic diagram of an exemplary GUI for a marketsimulator component of the FMRS.

FIG. 14 is a schematic diagram of an exemplary GUI for a market datamanager component of the FMRS.

DETAILED DESCRIPTION I. Overview of the Fmrs System

A financial market replicator and simulator (FMSR) will now be describedwith reference to the drawings. In the detailed description whichfollows, similar components have been given the same reference numerals,regardless of whether they are shown in different embodiments of theFMRS. To illustrate the present invention in a clear and concise manner,the drawings may not necessarily be to scale, and certain features maybe shown in a somewhat schematic form.

Referring to FIG. 1, a financial market replicator and simulator (FMSR)50 provides a system and methods for testing strategies for trading in afinancial market. The FMRS may be part of a broader financial marketAnalytics and Charting Software Program (ACSP) for analyzing marketinformation. In an exemplary embodiment, the FMRS 50 includes a marketreplicator 52, a market simulator 54, a freeze action component 56, asimulation/real-time switch 58, a learn/teach switch 59, and a marketdata manager 60. The FMRS 50 further may include a user interface 62 forreceiving user inputs, and a control portion 64 for coordinating thefunctions of the various components.

The market replicator 52 receives, intermixes, manipulates, compresses,and then records one or more incoming electronic financial market datastreams. The incoming data streams may include data from at least oneexchange. The incoming data streams may alternatively includeinformation from a plurality of exchanges, and/or information from oneor more news sources. The data streams, therefore, may include tradingactivity, bids, asks and orders of the market makers, news items, andother information relating to the one or more financial markets and/orfinancial exchanges and the securities traded thereon including, but notlimited to, Level I, Level II and Level III information. The marketreplicator 52 may combine and intermix such data into a unitary marketdata stream, which along with any user settings, notes, layouts, userwaypoints and freeze points, etc, then may be recorded onto a storagemedium. The amount of the data that can be combined, intermixed andrecorded is not explicitly limited, but is limited for the most partonly by the bandwidth, processor, memory and storage capacity of thecomputer system.

The following is a simplified example of how intermixing would be done.Assume that stock data from the NASDAQ is to be combined with futuresdata from the Chicago Mercantile Exchange (CME). Further assume that thetime stamps from the NASDAQ for a few stocks were as follows: MSFT @10:13:03, INTO @ 10:13:06 and QQQQ @ 10:13:07. Time stamps from the CMEwere CZ09 @ 10:13:01, WZO9 @ 10:13:04 and WZO9 @ 10:13:08: The combinedand intermixed data feed would display the data in the following order:CZ09 @ 10:13:01, MSFT @ 10:13:03, WZO9 @ 10:13:04, INTO @ 10:13:06, QQQQ@ 10:13:07, and WZO9 @ 10:13:08. In this manner, data from one or moreexchanges, and/or one or more data files can be combined to provide abroadened view of market data.

The market simulator 54 decompresses the recorded market data stream andplays back the recorded market data stream to simulate the real timefinancial market with a high degree of realism. In other words, tosimulate the financial market, the incoming data streams are intended tobe intermixed while maintaining the time order of the data, recorded,and played back as completely and nearly exact as is practicable suchthat a user would find it difficult to differentiate between the marketsimulation and real time market activity.

The freeze action component 56 freezes or stops the playback of themarket simulator while retaining full functionality of other portions ofthe financial analysis software that may continue to run in thebackground. In particular, the market replicator continues to record thefinancial market data stream in an unaltered manner even as the playbackmay be frozen or otherwise altered. The simulation/real-time switch 58switches between displaying a simulation mode employing the FMSR, and areal-time data mode in which the market data stream is used by the ACSPin real time as the data stream is received. In an exemplary embodimentmultiple secondary instances of the market simulator can be running witheach instance playing back the same or different market recordings. Themain instance of the ACSP can work with either real time or recordeddata. The secondary instances can only work with recorded data.

The learn/teach switch 59 provides a way to switch between a teachingmode and a learning mode, which are described in more detail below.

The market data manager 60 manages the various financial market datafiles for a user. This provides the trader with the opportunity topractice on a large set of historical events and market sessions toimprove, validate, and gain greater statistical confidence in developingtrading strategies.

The FMRS and associated ACSP may be incorporated into and/or executed asa computer software program that is part of an electronic financialmarket analysis and trading system 10. FIG. 2 is a block diagram of anexemplary system 10. The system 10 includes a computer system 12, whichcan include multiple computers that can be located remotely from eachother. However, in the illustrated embodiment of FIG. 2, the computersystem 12 includes a single computer. The computer system 12 has one ormore processors 14 for executing instructions, usually in the form ofcomputer code, to carry out a specified logic routine.

The computer system 12 has a memory 16 for storing data, software, logicroutine instructions, computer programs, files, operating systeminstructions, and the like, which may include the FMRS and associatedACSP. The memory 16 can comprise several devices and includes, forexample, volatile and non-volatile memory components. Volatile memorycomponents typically do not retain data values upon a loss of power.Non-volatile memory components retain data upon a loss of power. Thus,the memory 16 can include, for example, random access memory (RAM), readonly memory (ROM), hard disks, floppy disks, compact disks (including,but not limited to, CD-ROM, DVD-ROM, and CD-RW), tapes, flash memories,and/or other memory components, plus associated drives and players forthese memory types. The program described herein can be broken-up sothat different parts can be executed by different computers locatedlocally or remotely from each other.

The processor 14 and the memory 16 are coupled to a local interface 18.The local interface 18 can be, for example, a data bus with anaccompanying control bus, or a network between a processor and/orprocessors and/or memory or memories. The computer system 12 may haveone or more video interfaces 20, a number of input interfaces 22, amodem 24 and/or an electronic data receiver or transceiver interfacedevice 25, such as a network interface card (the modem 24, theelectronic data receiver 25 and any other device for receiving and/ortransmitting data are also referred to herein as an electronic receiver,a receiving means and/or a transceiver), a number of output interfaces26, each being coupled to the local interface 18.

The system 10 has one or more physical displays 28 coupled to the localinterface 18 via the video interface 20. In addition, the system 10 hasseveral input devices including, but not limited to, a keyboard 30, amouse 32, a microphone 34, a digital camera (not shown) and a scanner(not shown), each being coupled to the local interface 18 via the inputinterfaces 22. The modem 24 and/or electronic data receiver 25 can becoupled to an external network 38 enabling the computer system 12 tosend and receive data signals, voice signals, video signals and the likevia the external network 38 as is well known in the art. The externalnetwork 38 may be, for example, the Internet, a wide area network (WAN),a local area network (LAN), a direct data link, or other similar networkor communications link, including wireless networks. The modem 24 and/orthe data receiver 25 can be coupled to receive data from a satellitetransceiver 39, co-axial cable, fiber optic cable, a network cable, etc.or over a wireless data link. It is noted that the system 10 can beaccessed and used by a remote user via the external network 38. Thesystem 10 can also include output devices coupled to the local interface18 via the output interfaces 26, such as audio speakers 40, a printer42, and the like.

The computer system 12 is programmed to display and execute the FMRS andassociated ACSP in a graphical user interface (GUI) format.Alternatively, the computer system 12 has logic stored in the memory 16capable of being executed to display and function as the FMRS softwaretool. The functionality of the FMRS and ACSP may be embodied usingexecutable code that forms a program (or programs) that is, in turn,stored by a computer readable medium in the form of electronic, optical,magnetic, organic or other memory.

FIG. 3 depicts an exemplary network system 70 for executing the FMRS.The network system 70 may comprise at least one client device 72 (whichmay correspond to a system 10 as described with respect to FIG. 2),which may access an external network 38 as previously referenced. Thenetwork system 70 may further include a server or servers 74 thatcommunicate with the participating client devices 72. As will beappreciated, the server 74 may be configured as a typical computersystem used to carry out server functions and may include one or moreprocessors configured to execute software containing logicalinstructions that embody the functions of the server 74 and a memory tostore such software. In one embodiment, the server 74 may host the FMRS50 and/or the associated ACSP for access by the client devices 72. Inaddition, the network system 70 may include one or more a data sources76, which may provide financial market data as a data stream inreal-time for manipulation and processing by the FMSR/ACSP. Moreover, asfurther described below, the amount of data being generated by the FMRSfor a given user may be substantially greater than typically would bestored in a client device 72, which may be a desktop or laptop computer(or comparable electronic device). Accordingly, a network storage device78 (or storage devices) may be provided for storing the substantialamounts of data received and generated by the FMRS. Market informationdata streams, stored recorded data, stored trade simulation data, andrelated information may be distributed to multiple user devices 72 sothat each user can test strategies for a common period of the marketusing the same data. The recorded market data stream, including varioussets of both real and simulated trade data, also may be downloaded ordistributed to multiple users via the network connections.

FIG. 4 depicts an exemplary manner of intermixing the real time datafrom one or more stock exchanges within a country into a combined marketdata stream containing one or more of the country's stock exchanges. Inthis example, United States stock exchanges were used, but the samemethod could be used to combine the stock market data for any country.For, example, block 210 a represents the stock data from the New YorkStock Exchange (NYSE). Block 210 b represents the stock data from theAmerican Stock Exchange (ASE). Block 210 c represents the stock datafrom the NASDAQ. Block 210 d represents the intermixed and combined datafrom the various regional stock exchanges such as the Philadelphia StockExchange, the Boston Stock Exchange and other stock exchanges thatoperate outside the major financial centers. Block 210 e represents theintermixed and combined data from the various over the counter (OTC)stock exchanges. Block 210 f represents news for the various stockstraded in the United States. Block 210 represents the intermixed andcombined stock market data from all of the exchanges and newsrepresented by blocks 210 a-210 f.

FIG. 5 depicts an exemplary manner of intermixing the real time datafrom one or more futures exchanges within a country into a combinedmarket data stream containing one or more of the country's futuresexchanges. In this example, United

States futures exchanges were used, but the same method could be used tocombine the futures market data for any country. For example, block 211a represents the data from the Chicago Mercantile Exchange (CME). Block211 b represents the data from the Chicago Board of Trade (CBOT). Block211 c represents the data from the COMEX which is a division of the NewYork Mercantile Exchange. Block 211 d represents the intermixed andcombined data from the various regional futures exchanges such as theKansas City Board of Trade, the Minneapolis Grain Exchange and otherfutures exchanges that operate outside the major financial centers.Block 211 e represents news for the various futures traded in the UnitedStates. Block 211 represents the intermixed and combined futures marketdata from all of the exchanges and news represented by blocks 211 a-211e.

FIG. 6 depicts an exemplary manner of intermixing the real time datafrom one or more classes of financial markets within a country into acombined market data stream containing one or more of the country'sfinancial markets. In this example, United States financial markets wereused, but the same method could be used to combine the financial marketdata for any country. The intermixing of data depicted in FIGS. 4 and 5above are not limited to just stocks or futures, but can be used tointermix and combine any class of financial market data. For example,block 210 represents the data from the United States stock markets fromFIG. 4. Block 211 represents the data from the United States futuresmarkets from FIG. 5. As shown in FIG. 6, additional categories offinancial data may be intermixed. For example, block 212 represents thedata from the United States options markets. Block 213 represents thedata from the United States foreign exchange markets (FOREX), and block214 represents the data from various United States brokers, marketmakers and banks that deal in FOREX. Block 220 represents the intermixedand combined market data and news from all of the markets and newssources represented by blocks 210-214.

FIG. 7 depicts an exemplary manner of intermixing the real time data andnews from one or more countries within a continent into a combinedmarket data stream for the continent. In this example, North Americanfinancial markets were used, but the same method could be used tocombine the financial market data for any continent. For example, block220 represents the financial data and news from the United States. FIG.230 represents the financial data and news from Canada. Block 240represents the financial data and news from Mexico. Block 250 representsthe intermixed and combined data from the other North AmericanCountries. Block 310 represents the intermixed and combined market dataand news from all of the countries represented by blocks 220, 230, 240,and 250.

FIG. 8 depicts an exemplary manner of intermixing the real time data andnews from one or more continents into a combined global market datastream. For example, block 310 represents the financial data and newsfrom North America. Block 320 represents the financial data and newsfrom Europe. FIG. 330 represents the financial data and news fromAfrica. Block 340 represents the intermixed and combined data from Asia.Block 350 represents the intermixed and combined data from Australia.Block 360 represents the intermixed and combined data from SouthAmerica. Block 400 represents the intermixed and combined market dataand news from all of the continents represented by blocks 310, 320, 330,and 340, 350, and 360.

FIG. 9 depicts an exemplary method constituting an overview by which amarket replication may be generated by the FMRS. Although the exemplarymethod is described as a specific order of executing functional logicsteps, the order of executing the steps may be changed relative to theorder described. Also, two or more steps described in succession may beexecuted concurrently or with partial concurrence. It is understood thatall such variations are within the scope of the present invention. Itwill be appreciated that FIG. 9 represents an overview, and morespecific details regarding each aspect of the system are provided below.

The method may begin at step 100, at which the FMRS may receive one ormore incoming data streams of financial market data. The incoming datastreams may include information from a plurality of exchanges, and mayinclude one or more news sources. In one embodiment, as shown in FIG. 9,the incoming data stream may be the combined global market data 400 ofFIG. 8. At step 105, the incoming data streams from these varioussources may be intermixed in a manner that maintains the sequential timeorder of all data received, to generate a combined market data stream.The market data stream may be compressed to conserve storagerequirements. At step 110, the FMRS may record the market data stream ina substantially precise representation of the data as received andintermixed. In one embodiment, the user may control the recording ofdata for later use to playback during a simulation. In anotherembodiment, a service provider may make recorded data available to auser to run a market simulation. For instance, the service provider maymaintain a library of trading sessions from which the user may select.The recorded trading sessions can then be delivered electronically overthe internet, on hard copy through the mail or other delivery services,or by any other feasible means.

In another embodiment, the FMRS can create combinations of differentmarkets by intermixing and combining previously recorded sessions fromdifferent markets and/or exchanges that cover the same moments in timeas each other and combine them into a time ordered mega data streamspanning several markets and exchanges.

At step 112, the FMRS may record user specific information such as userwaypoints, user freeze points, user settings and user metadata. Thesaving of user specific information is a critical part of replicatingand simulating previous market experience. The user specific informationincluded in this step is described in detail elsewhere in thisapplication.

At step 115, a determination may be made as to whether the FMRS is setin a simulation or real-time mode. If in the real-time mode, at step 120the data from the incoming data stream is displayed in real-time asreceived. If the FMRS is set to simulation mode, the method may proceedto step 130. Note that the simulation mode may be set initially, orentered by switching from the real-time mode as shown in step 125.

At step 130, once in the simulation mode, the FMRS may play backrecorded market data, or a portion thereof, to simulate the financialmarket, or a portion thereof. The playback is intended to simulate andrepresent the real time financial market as nearly exact as ispracticable. At step 135, the FMRS may receive one or more simulatorinputs from a user. For example, a user may open a chart for a security,or other market, run user determined analytics in the chart, set useralerts on the analytics, and based upon the alerts input a simulatedtrade entry, exit, accumulation, or distribution as part of testing atrading strategy. In addition, at step 140 the FMRS may receive acommand input that alters any one or more aspects of the playback of therecorded market data. For example, a user may pause or freeze thesimulation. With the market simulator a user may also rewind the marketdata playback, replay the market data playback, fast forward theplayback, select an alternative playback speed either faster or slowerthan real time speed, start the playback from or skip backward orforward to a different point in the data stream (e.g., jump to a desiredpoint in the data stream, such as a point corresponding to a particulartime of day during a recorded trading session or a point correspondingto a user-established or automatically-established waypoint, orcorresponding to a particular freeze point, alert, etc.), and otheroperations. Various playback options are described in more detail below.If the

FMRS receives any user simulator inputs or commands, such inputs andcommands may be executed at step 150. The FMRS may store the simulationdata at step 160 as altered based on the execution of user inputs.

For example, the FMRS may simulate the results of numerous tradesentered by the user in accordance with the user's trading strategy. Auser may observe the results of the simulated trading activity to recap,evaluate and consider the overall efficacy of the trading strategy. Inaddition, a user may freeze/pause the simulation at an instant in timefor a more detailed consideration of the market or any of its aspects,including charts, studies, analytics, tables, executed trades, news,etc. In addition, a user may compare one set of recorded simulationinputs and their effects with another set. In this way a user can trackand compare their relative success with various trading strategies, thuslearning which inputs made key differences in results. As stated above,a user may also rewind or fast-forward the playback and simulation sothat the user may consider and evaluate the simulation at a particularpoint in time, and/or speed through a trading session to accelerate thesimulation process. Because the user may navigate to and freeze thesimulation at a particular point in time, the user may analyze whatoccurred in detail and thus determine what may have affected theefficacy of the trading strategy. The user may then adjust the tradingstrategy as warranted. A user may then test the amended strategy againstthe same portion of the data stream, and/or test the strategy againstadditional or different data (e.g., market data from a different tradingsession). A user also may adjust the speed of the market simulatorplayback to render the simulation slower or faster. Other inputs andcommands may be employed as well. In this manner, a user has a varietyof options for simulating and evaluating a potential trading strategy.

In connection with the freezing capability referenced above, a user mayfreeze the market playback at a particular instant in time within thereal time or recorded market data stream. The freeze action freezes orstops the playback of the market simulator while retaining fullfunctionality of all other portions of the financial ACSP that maycontinue to run in the background. For some users, market data that isplayed back at real time speed may proceed at a rate that renders itdifficult for a trader to fully analyze all aspects of the data.

Traders are often interested in intensive periods of market activity. Asa result, there are typically many related things taking placesimultaneously. The ability to freeze, back-up, and replay at a slowerspeed can be a significant tool in analyzing market data. This is justas true of live trading as of simulated playback. When testing andtraining using the market simulator, a user, therefore, may freeze thesimulation to explore the various aspects of the market data in a moredeliberate manner. Freezing the playback thus permits a user to freelyaccess content within the simulated market at the freeze point time.Among other things, the user is free to experiment with differentindicators, parameter values, and related markets. This market freezefeature provides a user with the ability to investigate and study, on asecurity by security basis, what heretofore were illusive andundiscoverable interrelationships of market action and behavior. Freezepoints in the recorded market data may be saved to permit analysis ofsuch data at any time convenient for the user. For example, a user mayaccess the stored data at the instant of time of the freeze point hours,days, weeks, etc. after saving a freeze point so as to permit detailedanalysis of the market data in a manner most suitable for the user. Theuser may also save multiple different freeze points in the recordedmarket data to permit comparisons of market behavior at different pointsin time. A freeze point may also be saved in the form of a moreinclusive waypoint. If it is saved in this manner, the waypoint mayinclude storing user entered information, including notes, real trades,simulated trades, settings such as the user's open ASCP windows andcharts, and so forth.

Freezing the market replay in the market simulator is very different inconcept from pausing the playback of a CD or DVD. When a CD or DVDrecording is paused, everything is stopped. The functionality of the CDor DVD player is stopped, and there is nowhere to go within therecording at that instant of pause time. There is nothing to explore.One is simply left with a frozen image on the screen that does notchange. By contrast, freezing the replay of the market simulator createsa portal in time through which a user can enter in order to explore themarket. Although the action of the market playback is stopped, theaction of the user within the ACSP is not. Using the functionality ofthe ACSP, a user can navigate within the market to explore what happenedat that instant of time. If the user, for example, is subscribed to only100 different securities, while the market is frozen the user has theability to explore substantially every aspect of every security. Theuser can change images on the charts by changing securities, analytics,time frames, etc. For example, when the user wants to see what adifferent security looks like in a chart, he simply enters thesecurity's symbol or name, and the chart image would change. Any changethat a user makes would be dynamically updated within the ASCP and couldbe shown on the computer display(s). A user can open new windows, orclose open windows. Virtually any function within the ACSP, that isavailable to the user when the market is in motion, is also availablewhen it is frozen. A user can thus move through a market and examine, invarious ways, a vast breadth of information.

In addition, the market replicator may continue to record the financialmarket data stream in an unaltered manner even as the playback may befrozen or otherwise altered. A user, therefore, may switch between astandard playback and a frozen mode, and vice versa, to permit a fullanalysis of the market data stream under a variety of playbackscenarios. In addition, during playback full functionality of the ACSPis maintained, even when the playback is altered such as by freezing,altering the speed, or otherwise as described above. Essentially everyaspect of the ASCP that is available to the user in real time isavailable to the user in simulation mode regardless of whether thesimulation is frozen or playing. For example, the user can open one ormore charts, display one or more symbols in each chart, run a variety ofdifferent analytics in each chart, change the symbols, etc. At the sametime, a user can also open time and sales windows for multiplesecurities, do simulated trades, and so on. There are substantially nofunctional limitations to what the ACSP can do in simulation mode ascompared to real time mode. Also, under the various playback scenarios,a user may explore Level I and/or Level II information regarding one ormore securities, as well as generate and explore analytics informationderived by the ACSP from the Level I and/or Level II information forsuch one or more securities.

The FMRS may be integrated into the broader ACSP. FIG. 10 depicts anexemplary graphical user interface (GUI) display screen 80 (or screenshot) generated by the ACSP and displayed on the display 28. The displayscreen 80 displays information to a user of the ACSP. This informationis intended to assist the user in deciding which securities to purchaseor sell and when to make those purchases and sales. The display screen80 includes a number of regions for displaying various sets ofinformation and includes information windows 82 a-e. As shown, numerouswindows may be open simultaneously. The numbers of windows that can beopened simultaneously are limited only by the capacity of the computersystem. For purposes herein, the precise form and content of the windowsmay vary. The windows, therefore, are indicated generically and mayinclude, but are not limited to, various kinds of information as wouldbe typical of an ACSP. Information that may be displayed in one or morewindows may include action items, Level I, Level II, and Level IIIinformation displays, analysis and results information, charts, alerts,news, etc. The exemplary display screen 80 includes drop-down menus 84for allowing the user to select various features and functions of theACSP.

In another exemplary embodiment, multiple instances of the ACSP can berunning at the same time. In one instance of the ACSP, which is referredto herein as the primary instance, the software program can be runningand both displaying and recording real time market session data. Anothersecondary instance of the ACSP can simultaneously be playing back, at auser determined speed, or freezing the action of the data beingrecorded. Yet another secondary instance of the ACSP can be playing backa market recording from another market session. The number of separatesecondary instances of the ACSP that can be running at the same time islimited for the most part only by the capabilities of the computersystem on which they are running. The ACSP GUI may include functionaltoolbar buttons or icons 86 which can be selected by the user by movinga mouse-controlled cursor to the button and pressing a mouse button toselect the button displayed on the display screen 28. In addition,keyboard 30 actions, touch screen actions, and/or voice commands can beused to select various functions and control the ACSP. Upon selectingthe button, menu item, icon or function (or other command entrymechanism), the ACSP carries out logic to invoke a corresponding action.

The ACSP GUI may include an input button or icon associated withaccessing and executing features of the FMRS. For example, selecting theFMRS button 86 a of FIG. 10 may be employed for entering the FMRScomponents to adjust various FMRS options and parameters (describedbelow). As will be understood, market information displayed in thewindows 82 is updated dynamically as market events occur.

The rate of dynamic change will directly correspond to the user selectedrate of market simulation playback (e.g., actual rate of thecorresponding live market, slower than actual rate, faster than actualrate, or jumping in increments of time, such as every five or tenminutes, or jumping forward to a pre-selected time,). To freeze thisdynamic updating of displayed information, another input option may be a“market freeze” item 86 b to freeze the display of market data andanalytics of the ACSP at a point in time selected by the user. The usermay then analyze the data at and around the time of the freeze point.The ACSP GUI may also include a simulation/real time switch 86 c thatpermits a user to toggle between a simulation mode (which plays backstored market data or that freezes the use of live market data from acurrent trading session) and real time mode (which uses live market datafrom a current trading session). Additional functional buttons or iconsare depicted in FIG. 10, which may be appropriate to the ACSP. Forexample, a button 87 a (C) permits a user to open a chart window.Similarly, button 87 b (Q) permits a user to open a quote window, button87 c (II) permits a user to open a Level II window, and button 87 d ($)permits a user to open a window that keeps track of open tradepositions. Pressing one of these buttons may also open additional morespecific menus, submenus, or options for the user.

It will be appreciated that the illustrated form and content of the ACSPGUI is exemplary and may be varied in form and content. In this vein,options may be selected from the ACSP GUI using icons, drop-down menus,toolbar buttons, menu trees, or other means for inputting a selectioninto a computer system.

More detailed features of the various FMRS components will now bedescribed.

II. Description of Fmrs Components

A. FMRS GUI

As indicated above, exemplary embodiments of the FMRS include a marketreplicator 52, a market simulator 54, a freeze action component 56, asimulation/real-time switch 58, a learn/teach switch 59, and a marketdata manager 60. FIG. 11 depicts an exemplary GUI associated with FMRSoptions, which may be accessed, for example, by selecting the ACSPbutton 86 a of FIG. 10. Button 86 a acts as a toggle to change thebuttons on the main toolbar 86 between buttons for FMRS options, andbuttons for ACSP options. As stated above, while executing the FMRS, theACSP functionality can remain fully active. Accordingly, the GUI of FIG.11 bears similarities to that depicted in FIG. 10, although several ofthe functional buttons have been altered to permit access to specificfeatures of the FMRS. As described with respect to FIG. 10, the freezeaction component 56 and simulation/real time market switch 58, andlearn/teach switch 59 may be accessible from the ACSP GUI, such as byusing buttons 86 b, 86 c and 86 e. As seen in FIG. 11, these optionsalso may be accessed within the FMRS GUI. In addition, button 86 a maybe used to return to the main ACSP GUI. In the FMRS GUI, a user may haveaccess to other components of the FMRS. For example, buttons 88, 89, and90, may be used to access the market replicator, market simulator, anddata manager options respectively. As with the other GUIs describedherein, the FMRS GUI of FIG. 11 is an example and may be varied in formand content.

B. Market Replicator

The market replicator 52 records financial market data streams for usein the FMRS. As further described below, data recorded by the marketreplicator may be replayed as a simulation by the market simulatorcomponent. In a preferred embodiment, the market replicator may beintegrated into the same ACSP that a trader uses for accessing real timedata. For example, as seen in FIGS. 10 and 11, in one embodiment amarket data recording may be initiated using a record button 86 d fromeither the ACSP or FMRS GUI. The recorded market data may be receivedusing the electronic data receiver 25 (FIG. 2). Also from either theACSP or the FMRS GUI, as a market recording is being made, the recordingof user metadata may be initiated using the learn/teach button 86 e.

The market replicator records substantially the entire real-time marketdata stream(s) (also referred to as live market data), or any subset ofmarkets thereof, in a manner so that playback of the recorded datastream through the market simulator replicates, as nearly aspracticable, real-time market action as it occurs so a realistic marketsimulation may be generated. As a result, a user would have difficultydifferentiating the playback of the data stream from live marketactivity. Furthermore, live data stream information provided to the ACSPstill may be available while recording data or running a simulation. Forexample, real time alerts may still be triggered as previously definedby the user, real time displays may be up-to-date when the simulationexits, and so on.

The data for the market recording may come from various differentsources. The scope of the recorded information may include trading datareceived from the exchanges, including Level I, Level II and Level IIIdata. The data also may include news and information items from variousnews sources.

The various data and information may be received by the marketreplicator from independent sources and then intermixed for purposes ofsimulating broad market activity. For example, data items from the NYSEand/or related electronic exchanges, data items from NASDAQ and/orrelated electronic exchanges, data items from Forex and/or relatedelectronic exchanges, data from foreign exchanges worldwide, headlinesand news stories from Dow Jones News, the Wall Street Journal, and othernews sources may be received. These data items are processed with anelectronic processor that intermixes the data items, while maintainingthe time order of the data, into a common simulated market data streamthat represents substantially the entirety of the financial market(s),or a subset of markets thereof. The intermixing of the data may beperformed by electronic processor 14 of the computer workstation and/orby one or more electronic processors dedicated to or shared with themarket replicator functions. Thus, the market replicator is intended torecord data of sufficient scope so as to permit a market simulation toreplicate, be as nearly identical to, and virtually indistinguishablefrom, the real-time market activity as is practicable. In addition, themarket replicator may generate multiple recordings simultaneously, suchas, for example, multiple recordings in which each recording may bebased on a different exchange, different set of symbols, or otherdelineations. In other embodiments, some or all of the data may becombined by a service provider before receipt by the user's computer(e.g., NYSE, and NASDAQ Level I and Level II, and Forex data may bereceived by the user as a combined data stream).

The market replicator also records user specific information in the formof user settings, and user metadata. Detailed descriptions of userinformation can be found elsewhere in this application.

Market recordings can be of any length. A recording can contain seconds,minutes, hours, or days worth of information. Recording length and sizeis limited for the most part only by the user's computer systemcapabilities

The market replicator may record market data by encoding sequentialmarket data into a variety of data blocks, described below, which thenmay be recorded onto a computer readable medium. The computer readablemedium also may have stored thereon instructions that govern theencoding process. The recorded data may be stored using one or moretypes of data structures to facilitate compatibility with the variousmarket data recording and simulation options. The FMRS data files may bestructured using discrete data blocks of information, with each datablock containing functionally integrated sets of information. The datablocks form a sequence of concatenated records. Depending on the contentof a given block, some of the data blocks are self contained and do notrelate to information contained in other data blocks, while some datablocks rely on other data blocks to be understood. Exemplary data blockcategories include: (1) initialization blocks, (2) market waypoint tblocks, (3) market streaming blocks, (4) cache blocks, (5) user waypointblocks, (6) freeze point blocks, (7) alert blocks, (8) user settingsblocks, (8) replay information blocks, and (9) user metadata blocks

The first two categories (initialization blocks and market waypointblocks) may be used by the market replicator to parse the data in aformat appropriate for use by the market simulator. Initializationblocks may provide information (e.g., tags, flags, data objects, symbolsets, data block location, data block size, compression type, etc.) forparsing the recorded data, with each initialization block designatingboundaries for a particular component (e.g., time frame, set ofspecified symbols, etc.) of the recorded data. The initialization blocksmay be based on the character of the content of the recorded data tofollow, such as frequently changing information that may be employed tointerpret and parse the financial data stream.

An initialization block may contain, or reference, information the FMRSrequires in order to replicate the market during a market simulation.This information may include but is not limited to the followinginformation: the identity of the market recording, the structure of therecording, the identities of the market scope, of the market securities,of the market makers, of the exchanges, and other contextual informationrelevant to various embodiments. The information may also include theinitial statistics and analytics relevant to each market and maycontain, or reference, information such as the location and size of thevarious other data blocks, context information, data scope information,client default or view state information, mark initiating points for amarket data recording or a significant portion thereof, and the like.

Market waypoint blocks similarly may be based on frequently changinginformation used to interpret and parse the financial data stream tofollow. The market waypoint blocks include market data for a particularpoint in time, such as, for all symbols involved in the recording and/orsimulation, trade prices at the point in time, trade volume at the pointin time, and other Level I, Level II, and Level III and news data. Inaddition, it includes the values of all calculated analytics at thepoint in time. The data forming a market waypoint block provides all ofthe information needed to create an accurate reconstruction of themarket at the corresponding point in time, or a data snapshot of themarket. Waypoints, therefore, are constructed from the subset of timelyinformation which is referred to as a data snapshot. In one embodiment,a market waypoint may automatically be stored periodically, such as, forexample, every ten minutes, every fifteen minutes, every thirty minutes,once an hour, etc.

Waypoints provide a means for rapidly navigating through a marketrecording.

Since the FMRS can reconstruct market conditions based upon a waypointand what it references, navigation is a quick operation. A user cannavigate directly to a waypoint, either forward or backward in themarket recording, and start the playback of a market recording from thatwaypoint without sacrificing the accuracy of the playback. Thesimulation of the market at that point in time is the same as if themarket recording were stated from the beginning of the trading session.

As new market data is received and processed through the FMRS or ACSP,the new data information affects the information that preceded it.Analytics are updated, prices and volumes change, etc. Some of the newinformation is added to what was already there, while other previousinformation is replaced or deleted. Trade prices and times are alwayschanging. Market makers come in and out of the market, and areconstantly changing bid/ask prices and volumes. The changes within theACSP occur continuously as the market unfolds. Any point of time withinthe market day is dependent on everything that has transpired so farbefore that point. If that point in market time is to be used from whichto start the playback of a market recording, in order to accuratelyrepresent the market, a data snapshot of the market is taken. Otherwise,simply jumping forward in a data file would omit the information youjumped over and render the simulation inaccurate.

The data snapshot, once constructed, contains substantially everythingcurrent about the market. This is quite different from the present stateof the art which preserves only a shallow and limited subset of thedisplayed information. As a result, analytics and analysis of such dataare no different from the values which would have been obtained when theevents occurred. If such preserved data contains only a subset of theuser's universe, then the user is precluded from examining or receivingrelative events concerning discarded markets. Also, if such preserveddata shallowly contains only some of the display, analytic, and/orintermediate variables, then the user is precluded from examiningdiscarded display information, and may get completely different derived,analytic values based on the limited amount of information retained.Using such a limited playback can be worse than nothing, since theexperience can only be repeated by replaying the simulation in exactlythe same way, and does not reflect what would have happened in livetrading. This invention improves over the state of the art in itscomprehensiveness as compared to conventional systems by providingcomplete financial market data, by providing accurate analytic data, byproviding user experience data, and by providing user metadata.

Users would like to be able to jump to any moment in the marketrecording instantaneously, but this is not practical with today'scomputer hardware. Rather waypoints may be recorded with some timeinterval frequency, and the simulation jumped forward or backward to thedesired point. The time interval at which these waypoints are recordedmay depend upon either user preferences, or the host computer'scapabilities.

Depending upon the number of securities being followed, at anyparticular moment in time, it may typically require several megabytes ofstorage space to record the data snapshot. In order to have the abilityto start a market recording playback at any chosen second of the marketsession, data snapshot information would have to be saved every second.It is estimated that if this was done, a file containing data for 1,000different simultaneously followed securities, for example, would requirea data file containing about 46.8 terabytes of uncompressed memory perday. Markets consist of thousands of securities. This inventioncontemplates the saving of market data snapshots on a more frequentbasis, limited only by technology. Breakthroughs in storage technologyallow for the possibility that every piece of financial data could bestored without compression, thereby allowing for market recordings to beread and played forwards or backwards. A data snapshot is not simply amemory dump of all the data in the computer's RAM (Random Access Memory)that is used by the ACSP.

A data snapshot contains only enough information to be used as abaseline from which the start of an accurate simulation of the recordedreal time market can be made. The accuracy of the simulation is insuredby first loading the data snapshot information into the computer's RAM,and then starting the market replay of the streaming data blockinformation from the point in market time represented by the thesewaypoint “snapshots”. The continued replay of the market recording fromthe waypoint simulates with essentially complete accuracy the real timedata stream.

Memory dumps would consume a considerable and impractical amount of thecomputer's resources. For example, an ACSP processing a data stream of1,000 stocks and containing Level I and Level II data could consume upto 1 gigabyte of computer RAM for every memory dump. This inventioncontemplates the saving of market “snapshots” done as often as desired.

Data snapshots take significant resources to create, significantresources to store, and significant resources to reconstruct. Themethodology of using data snapshots is an integral part of thefunctionality of the FMRS. The FMRS makes use of this current state ofthe art current technology. As the underlying computer technologieschange, it is envisioned that the currently used technique of chainingdata snapshots may be unnecessary, and that these data blocks may not bepersisted within the computer hosting FMRS.

The market waypoint blocks, in addition to being self-contained datasnapshots, contain backward and forward references, to each other withina recorded data file. This supports quickly jumping forward or backwardin time from market waypoint to market waypoint within a recorded datafile. They also tend to be self-contained and include such informationas data compression configuration, various types of current nationalmarket data, and appropriate navigational references. Market waypointsmay be used to break up the recorded data so that future replay orsimulations from various points in time will be facilitated (e.g., aplayback need not start at the beginning of a trading session andfast-forwarded to a desired point in time). The market waypoint blockscapture all of the market information in the data stream at a particularmoment of market time. This information forms a baseline from which amarket playback can start.

Market streaming blocks may comprise a representation of substantiallyevery data item, data message, or value that is received in a financialmarket data stream including, but not limited to, Level I data, Level IIdata, Level III data, and news information. Other types of market datamay also be included within the market recordings. The market streamingblocks may be related to or parsed based on the most recentinitialization block, and relative to the most recent cumulative marketwaypoint blocks since the last initialization block. The marketstreaming blocks may include operational information, and recording oftrading and quote data, and any other financial or news information thatmay be received by the market recorder. For example, a market waypointblock may contain a last trade price and size for each security on anexchange. To update the trade price, the market streaming blocks maycontain a trade price change value and a trade volume change for eachtrade up to the next market waypoint block and a time of each trade (oran indication of the length of time between each successive trade). Thetrade price change value may be the difference between each successivetrade (decreases being a negative number and increases being a positivenumber).

As an example, a market waypoint block may store, for an individualsecurity, a trade value of $10.00 with a cumulative volume of 120,000for the trading session. The market streaming block may store successiveentries for following trades. Continuing the example, if the next tradeoccurs two seconds later for $10.02 with a volume of 5,000 shares, thefirst entry in the market streaming block may be a value of +2 for thechange in trade value (representing an increase of two cents), a valueof 5 (representing 5 thousand) for the change in volume, and a value of2 for the time of the trade (representing 2 seconds). The change intrade value may be added to the trade value from the market waypointblock to reconstruct the market activity. If the next trade occurs ahalf second later at a price of $10.01 and a volume of 300 shares, thenthe second entry in the market streaming block may be values of −1, 0.3and 0.5 respectively for the price change value, volume change value andtime value. These values may be combined with the result of combinationof the waypoint values and the first entry to obtain respective datavalues for the corresponding point in time. As will be appreciated, theprocess may repeat for each trade so that a running total may bemaintained. Therefore, when the change values from the market streamingblock are progressively applied to the value from the most recent marketwaypoint block during a simulation, the reconstruction provides theappearance of actual trading activity. Other Level I, Level II, andLevel III data may be managed in a similar manner, or actual values maybe stored in the streaming blocks.

Cache blocks may store or constitute particular data items that may bestored in a computer random access memory (RAM) during execution of theFMRS. As the user's ACSP operates, a variety of relatively currentfinancial market data may be temporarily stored within RAM of the user'scomputer. This can include information such as recent or current timeand sales, bids and asks, analytics, news, etc. The purpose of cacheblocks is to save this information in a temporary state forincorporation into an FMRS data recording file. It is held in thistemporary cache until it is written to the market recording, after whichthe cache is flushed and wiped clean.

The blocks so far described above, record non user-specific information.The FMRS may also allow the following user-specific data blocks to berecorded and maintained: user waypoint blocks, freeze point blocks,alert event blocks, and replay information blocks, and user metadatablocks. The FMRS may update this information based upon the user inputsfrom the user's last market recording playback. In an exemplaryembodiment, these blocks are typically stored at the end of therecording, rather than in-sequence embedded with the market data.

Market waypoints are recorded automatically, but the user can alsocreate additional data snapshots, called User Waypoints, which are alsostored within the recording. These user waypoint blocks are referencedto user defined points of market time. They can be created on-demand, atpre-determined points of market time, or based upon pre-defined alertsor events being triggered. Market waypoint blocks can also be embeddedand stored within the market recording at user defined intervals oftime. User waypoints can be created at any point both during either therecording or playback of market of market data. In an exemplaryembodiment, either during the making of a market recording or itsplayback, a user can click on a waypoint icon on the toolbar of theACSP. Clicking on the icon creates and saves a waypoint for that pointof market time. In another exemplary embodiment, a user can schedule amarket time for which a user waypoint would automatically be stored.This can be done either during recording or playback. Any time a userwaypoint is saved, a balloon tip message may be used to confirm theaction.

The freeze point and alert data blocks are user-defined data blocks usedto mark the recorded data stream for a variety of purposes. The freezepoint and alerts may be recorded as data snapshot blocks, or inexemplary embodiments, as entries into a freeze point event table and analert event table saved within a replay information block stored near orat the end of the recording. Freeze points constitute a user-definedmarket time marker for a selected point of interest in the recorded datastream. A user may specify a descriptive name or other identifier foreach defined freeze point so that the freeze point may be selected at alater time by the user. Freeze points, optionally, upon playback, freezethe playback. Alert points provide another user specific, automaticallygenerated market time marker for access by the FMRS. In particular,alert points may be define market data derived thresholds or events thatmay trigger an alert from the user. Knowing both when alerts weretriggered in a previous real time or simulated session, as well theinstructions which generated the events, can be valuable in a futureplayback. In particular, user actions are often prompted by alerts whichmake alert points natural points of interest for a user during a futurereplay or simulation. Other types of market events also may be markedand saved in the recording. The alert event table consists of all of thetimes and markets at which an alert was fired. Freeze points and alertsmay be changed and saved to the recording any time a recording isinitially made and/or subsequently replayed. User experience informationmay also recorded in the replay information block by providing ACSP usersetting configuration information, or reference to the user settingblock, and a sequence of the user actions within the ACSP timed to themarket. Embedded narrative or active metadata may be triggered to playduring a market simulation.

It is envisioned that the replay information system be extensible. Othertypes of market events, for example tags timing the replay of the marketto any video recording, also may be marked and saved in the replayinformation block or in new block types within the recording. Saving thefreeze points and alert events in the replay information block makes iteasier to keep the recording current with the user's creation anddeletion of freeze points, modification of alert settings, and creationand deletion of user waypoints which may occur any time a recording isinitially made and/or subsequently replayed.

User settings blocks contain user specific information for the ACSP.Some common user specific information may include, but is not limitedto, symbols lists, quote windows, charts, portfolios, layouts, colors,studies, personal notes and all other non-market user specific settingsand data for the ACSP. User metadata blocks contain specific timesequential information that tracks user inputs and user interactionswith the ACSP, and other communication and browsing software. As amarket recording is being made a user can add and record time stampedlayers of notes, voice narration, mouse movements, and other meta-datasuch as, but not limited to, images, emails, instant messageconversations, web browsing history, etc. Although the market data neverchanges from simulation to simulation, the user experience and how theuser interacts with the ACSP typically does. Keeping track of how theinformation displayed in a recording, or simulation, is being used andprocessed by the user may be an important supplement to the financialmarket data itself. User metadata blocks provide a means by which a usercan replicate how the FMRS was previously used. Since market recordingscan be shared with others, saving metadata may have a profoundimplication as a teaching and learning tool. On playback, the display ofthe sequence of user actions within the ACSP, can be timed to themarket, and played back, with or without user action such as prompting,verification, etc., at the correct market time. A novice trader canreplicate the simulation experience of an expert trader. User metadatamay be changed, added to, or deleted and saved any time a recording isinitially made or subsequently replayed.

At the completion of a market recording, the user settings block, userwaypoint blocks, replay information blocks, user metadata blocks andother user-specific data blocks are added to the recorded data file.Doing this enables the user to experience the essentially exact sameACSP settings that were in effect during the time of the marketrecording. Upon subsequent replay, the FMRS may give the user the optionto save their changed selections and information to the market recordingso it is available on subsequent playbacks. The FMRS may keep theserevised block collections distinct or may simply replace the usersetting block, user waypoint blocks, replay information blocks, andother user-specific blocks.

Although waypoints and freeze points both provide flags to points ofinterest within an FMS recording, there are functional differencesbetween the two. A market recording can be quickly jumped to a waypoint.When jumping to a freeze point, or an alert point, or some otherexplicitly requested market time, the recording must be played forwardfrom the previous market waypoint. This is because waypoints contain allof the data snapshot information needed to accurately replicate therecorded market. Freeze points and alert points do not. Freeze pointsand alert points are typically used during the playback of a marketsimulation as points of interest, rather than as a point from which tobegin practice. The timestamps associated with freeze points, alerts andother points of interest, relative to full data snapshots, conserveresources, and still maintain flags to the points of user interest. TheACSP may allow the user to elect to freeze playback at existing freezepoints, newly added freeze points, waypoints, alert events, or any othertime or condition specified. During market playback, a user can alsocreate a new user waypoint.

The various data block categories provide mechanisms for defining orcustomizing the playback of a market recording by the market simulatorcomponent (described below). For example, a user may select to replay amarket recording beginning at an initialization block through or up to aparticular market waypoint block or freeze point. A user may select toreplay a market recording between two or more freeze points, or for aparticular time period beginning prior to and ending after an alertevent. Once the ending time has been reached, say at a freeze point, theuser may choose to continue playback, or not. It will be appreciatedthat the user may employ various combinations of the market waypoints,freeze points, user waypoints, alert events, and directly specifiedtimes to achieve a highly customized marked recording, with such markerslater being accessed during a replay simulation. In one embodiment, alldata (or its data structure or presentation thereof) is recorded asreceived and typically not filtered in any way. This permits futurereplay with or without filters, depending on the preferences of the userat the time of replay.

FIG. 12 depicts an exemplary GUI for the market replicator. As with theother GUIs described herein, the market replicator GUI of FIG. 12 is anexample and may be varied in form and content. As indicated above, auser may enter the GUI for the market replicator options and commands byselection from broader menu options accessible from within the GUI ofthe FMSR, such as by selecting the icon 88 of FIG. 11. The FMRS and/orACSP GUIs may also include a data recording button 86 d as stated above,and the button 86 d may also constitute an indicator that changes coloror appearance to indicate the market replicator is actively recording.Multiple pressings of the button 86 d may also toggle between startingand stopping or pausing a recording. Also, as stated above, the FMRSand/or the ACSP may include a learn/teach switch button 86 e, whichprovides for the recording of user metadata. The button may include anindicator that also changes color or appearance when recording,

Once within the market replicator GUI, a user may have a variety ofavailable commands to initiate and customize a market recording. Forexample, various toolbar items or dropdown menus may provide availablecommands associated with manipulating recordings, such as, for example,generating a new recording, displaying and/or changing a marketrecording name, starting a recording, saving a recording, scheduling arecording, and others. A user may also select particular storagelocations for the recording. Other recording options may pertain morespecifically to the scope and/or precise content of the recordedinformation. Such options may include selecting particular marketexchanges and news sources, limiting the recorded information toparticular vendor-supplied data, defining various combinations ofspecific stocks, markets, exchanges, and news, and the like. The basisfor content parameters may be user-defined or follow from externalrestrictions, such as hardware or network capabilities, subscriptionlimitations, or others. Other recording and/or scheduling options maypertain to the timing of the recording, including recording one or moreparticular portions of a trading day, setting specific trading days,specifying whether to include premarket and/or after-market activity,and the like. Scheduling options can also include starting a recordingautomatically when user defined conditions or alerts are triggered.

The exemplary market replicator GUI of FIG. 12 includes button functionsand the like carried over from previous GUIs, which may be useful whileaccessing the market recorder. Additional functional buttons or iconsare depicted in FIG. 12, which may be appropriate to the marketreplicator itself. For example, a button 88 a (WAY) permits a user todefine a waypoint, and the button 88 b similarly permits the user todefine a freeze point. Pressing one of these buttons may open additionalmore specific menus, submenus, or options that would permit a user toprovide defining information such as a name of a waypoint or alert, atime of waypoint (current or other), an event to trigger an alert to bemarked in the recording, moving to a next/previous waypoint or alert,deleting waypoints or alerts, and so on.

The exemplary GUI of FIG. 12 also includes a command button 88 c (CMD),which may be selected to open submenus or input options for specificrecording commands, such as starting a new recording either by useraction or automatically, scheduling, stopping and saving, pausing,resuming, saving to a particular directory, and so on. The marketreplicator also may generate alerts for the user regarding availablememory space, disk or storage space, and other messages that mayidentify issues that may impede a recording.

In connection with setting the various recording content and timingparameters, the market replicator may include an “Auto-Record” feature.In the exemplary GUI of FIG. 12, a command button 88 d (AUTO) may beselected to access the auto-recording features described herein. Usingauto-recording options, the recording parameters such as the start time,end time, or duration may be defined once and then applied repeatedly togenerate a customized set of recorded data with minimal effort. As partof the Auto-Record feature, waypoints may be set which would be appliedautomatically to the recording, such as setting waypoints at specifictimes of day, time intervals, and the like. Similarly, alert pointblocks/records may be identified to be marked automatically in therecording when an appropriate alert is triggered. The Auto-Recordfeature may also generate user prompts regarding the status of arecording, such as when a recording is unexpectedly interrupted,complete, or may be approaching a storage capacity limit or otherrestriction. A user may schedule particular recording periods by day ordays of the week, time of day, market session (pre-market, intra-market,after-market), one-time versus recurring, and the like.

If the recording of a market session is interrupted, the FMRS may saveeach recorded segment in separate data files.

C. Market Simulator

The market simulator 54 plays back the recordings generated by themarket replicator 52. In an exemplary embodiment, the market simulatoris integrated into the same ACSP a trader uses for analyzing “real time”data corresponding to live market activity. The market simulatorsimulates financial markets by replaying the recorded market data sothat a trader can re-experience market activity and refine real timemarket analytical and trading techniques. Market activity is played backin a manner intended to resemble actual market activity with suchrealism that an observer would find it difficult, if not impossible, todifferentiate the playback from the “real-time” market. In addition, themarket simulator may be employed to replay recorded market activity overand over again as many times as desired.

The market simulator may decode the encoded data generated by the marketreplicator for playback. A computer readable medium may have storedthereon instructions that govern the decoding process. Control segmentsthat control the timing of the playback, such as starting and endingpoints, may also be stored.

By being able to replay the same market recording over and over, atrader has a tool available that can help him or her in severaldifferent ways. One way is to refine analytical and trading techniques.For example, if a trader made a mistake in real time trading, a tradermay use the market simulator to replicate the market conditions at thetime, and under the conditions, that the mistake was made. The tradermay then adjust his or her technique in an attempt to determine whethera better outcome could have been achieved by modifying their tradingstrategy, and/or using different alerts, different window layouts,different analytics, different parameters for the analytic methods,different trade entry, monitoring, position adjustment, and exittechniques, etc. This process may be repeated multiple times whilevarying the trading strategy, analytics, and alerts, dismissing some,adding others, until a successful trading strategy has been created.Subsequently, the strategy may be tested under various market conditionsby applying the strategy during playback of other recordings. The marketsimulator, therefore, permits a trader to refine and test tradingstrategies by replaying the simulated market around a point of interestas many times as desired, and/or during multiple trading sessions.

Another way a trader can use the market simulator to improve his/hertrading skills is by making use of its numerous options for adjustingthe nature of the replays of recorded market activity. In addition toreplaying the market at real time speed, the market activity can beplayed back at speeds other than real time speed. For example, themarket activity can be played at slower than real-time speed to allowthe user to practice strategies in a more deliberate fashion as themarket activity slowly unfolds. Alternatively, the market activity canbe replayed at a speed faster than real time speed to allow the user tofast-forward through non-interesting portions of the market activity. Afaster replay may also provide more challenging conditions fordeveloping a trading strategy, or provide results of testing a tradingstrategy more quickly.

Also, a market replay can be frozen at any point to allow the trader toinvestigate the coactive interactions and relationships between one ormore securities, indices, analytics, news, etc.

Making a market recording, running a market simulation, or doing both atthe same time does not interrupt the flow of real time data to the ACSPsoftware even if the ACSP is not displayed. Accordingly, any previouslydefined real time alerts will still be triggered, and any previouslydefined real time market recordings may continue to be made. When amarket simulation is terminated, the user may return to the primaryinstance of the ASCP in real time data display mode, which would reflectcurrent market conditions. Multiple secondary instances of marketsimulations may run while the real time primary ACSP continues tooperate, regardless of running in the background, foreground, orotherwise located on the Windows desktop. Users also may switch amongsuch multiple simulations that may be running at a given time. A user,however, need not run both a simulation and the primary instance of theASCP simultaneously. Rather, a user may switch from the primary ACSP andrun one or more simulations independently of the primary ACSP. Also, amarket recording may be made while not in simulation mode.

A market simulation may be accessed and played from a variety ofsources. Not only can the market simulator playback recordings made bythe market replicator, but historical recordings may also be downloadedfrom a data vendor. For example, data for the market simulator may bedata previously archived or stored on the user's computer by the marketrecorder. Simulation data may be requested from a data vendor, fromrecordings made from streaming market data for a given trading day,based on historical market information for other than the currenttrading day obtained by accessing historical data files, and so on.

In an exemplary embodiment, by default, the data contained in a marketrecording is limited only to the information contained in the recordedsession's data stream. Historical data from market session times beforethe recording is kept in other data files. As the market recording isplayed, any information not embedded in the recorded data stream, butneeded to populate charts, quote windows, etc, is obtained from otherdata files located either on the user's computer, or stored on local orremote data servers.

Information displayed within a simulation may be comparable in contentand format to information displayed using an ACSP when running real timedata. For example, as is known in the art, an ACSP may generate marketinformation in the form of quote windows, time and sales windows, LevelI and Level II data windows, watch lists, filters, charts, studies,news, analytics, etc. The types of information and information windowspresentable by an ACSP are myriad and well known in the art. A user maynavigate among the various windows and manipulate or alter content innumerous ways. Comparable information and functionality may bereproduced as part of a simulation so, as stated above, a simulationreproduces a market experience for the user as near as practicable tothe real time experience generated by the ACSP.

The market simulator may also be customized to trigger market alerts.Similar to setting alerts for the real time data analyzed by the ACSP,simulated alerts may be defined to operate within the FMRS as the marketsimulator replays market activity. For example, news alerts, tradingopportunity alerts, charting alerts, and the like may operate within asimulation. As the market simulation playback moves through a recordedtrading day, alerts can arise as if the market activity were occurringin real time. As when running in real time, alerts defined to operatewithin a market simulation may be displayed and be recorded in a numberof ways.

The market simulator also may include features associated with simulatedportfolio tracking comparable to portfolio tracking based on realactivity. Portfolio tracking is known in the art. By providing a windowin which the user may record their real or simulated trading actions,the user is able to see their real or simulated account status duringthe simulation session, and the accumulated results. Typicallyinformation relating to securities positions, trades, gains and losses,commissions and expenses, market value, etc. organized in a variety ofways (e.g., by broker, account, customized groupings, etc.) The marketsimulator may be employed to define one or more simulated portfolios torecord and save simulated portfolio information, and to track theperformance of the simulated portfolio. The market simulator maygenerate and reproduce multiple iterations of simulations of a givenportfolio. A user thus may apply different trading strategies to thesame portfolio over the multiple iterations so the trader can comparethe results of successive trading simulations using the same tradingperiod and data, manipulated using different combinations of tradingstrategies, analytics, and alerts. This can allow users to see whatstrategies worked best for the given market period and for a givenportfolio. Such features may also be expanded to apply to multipleportfolios, to allow saving simulated portfolio tracking informationfrom different playback sessions independently, and provide a way tomake comparisons.

In utilizing an ACSP, as the real time market data is received, the usertypically opens a variety of windows relating to a portfolio showingquotes, charts, analytics and so on, navigates from one window toanother, changes the securities being viewed, alters the statisticalanalyses being performed, etc., as the user navigates through parts ofthe software program. The user tracks the market activity in one or moresecurities and at times may decide to take action or trade on one ormore such securities. Trading activity is updated within the portfoliopresentation as the user acts. Comparable functionality is available tothe user when running the market simulator. In other words, a user ofthe market simulator would experience the market during a simulation inessentially the same manner as when using an ACSP in real time. Inaddition to viewing a replay of recorded data, in the simulation mode,the user may execute simulated trades, define analytics, open andnavigate among numerous information windows, and so on. As a result, thesimulation mode would be largely indistinguishable from a real timeexperience.

As is known in the art, it is not uncommon for price, volume and othertypes of errors to be included in the real time data generated by themarket exchanges. This can happen in many different ways. A trade forone security may get transmitted for a different security. A trade maybe recorded with a wrong price, missing digits, transposed digits. Atrade may be transmitted out of sequence. The exchange may rescind atrade or quote based on rule violations. The electronic system by whichthe information is transmitted occasionally introduces random errors orsystematic glitches. Indeed, none of the exchanges transmits datacompletely error free.

For this reason, as also is known in the art, the exchanges typicallyuse proprietary software, monitored by designated teams of employees, tocontinuously monitor their data flows attempting to identify dataerrors. When errors are found, appropriate corrections are made. Often,errors are corrected before the information is transmitted outside theexchange, but this is not always the case. If the erroneous informationhas already been transmitted from the exchange, the exchange willtypically transmit corrections to correct the errors. Such errors mayinclude adding trades that were not previously reported, correctingtrades because of an error in time, price or volume information,canceling trades because they never took place, and others. It is, ofcourse, desirable that errors be corrected promptly, and most errors arecaught and corrected shortly after the error occurs. This is not alwaysthe case, and it can take up to several hours or more before thecorrection process is completed in certain cases. Sometimes the error isonly reported as a news item, and no specific electronic correction isgenerated.

Errors, therefore, exist in real time market data feeds and thus areaccounted for as part of the real time trader's decision making process.Because the purpose of the FMRS is to simulate the real time experienceas identically as practicable, the FMRS records the transmission, errorsand all, and reproduces such errors and associated corrections as themarket simulator runs a simulation. Some in the industry simply correcttheir records, and perform their analysis as if there had never been anerror. This is a short-coming that is avoided by this invention.

Utilizing the above features of the market simulator, a trader has theopportunity to practice various market strategies using the FMRSsoftware. The trader can learn from simulated results and his or hermistakes, and develop and test new strategies and heuristics. The tradermay also generate or define new statistical indicators and analytics,and create associated alerts to test the indicators against the recordedmarket data. The trader's skills, therefore, may be refined andrehearsed with repeated practice, and a trader may then apply suchimproved skills to real time activity.

For example, as stated above, in addition to playing back a marketrecording at real time speed, the user has the option to set the marketsimulator to play the simulation at speeds other than real time speed.The markets develop quickly, and the speed at which market informationunfolds can be overwhelming. Operating the market simulator at slowspeeds has the advantage of allowing the user to first get a feel forthe interactions taking place, and to practice his or her tradingtechniques until mastered at slower speed levels. Simulation at slowerplayback speeds allows the user to practice his or her reactions tomarket activity and information without being overwhelmed by marketconditions. As the user's skill increases, the speed of the simulationmay be increased commensurately to provide an increasing challenge forthe user so as to verify their readiness for future challenges

Exemplary user-selectable playback speeds may include: full speed—asfast as the user's computer will process the data without regard to theoriginal real time spacing of market data; normal speed—which accuratelyreplicates the actual real time market activity; and various otherspeeds either faster or slower than normal speed. In this manner, abeginning user may begin at a slower than normal speed so as not to beoverwhelmed by the flow of market information. As a user's understandingof, and reaction to, the markets improves, i.e., as the user solidifiesstrategies/heuristics, hones alerts, refines the application layout,improves reaction time, etc., the user can speed up the simulation speedto normal speed. As the user's skills improve further and his methodsmature, the user can run simulations faster than market conditions, upto full speed, to present new challenges and attain more confidence inthe ability to keep up with fast moving markets. Once a user has reacheda comfortable skill level and has developed effective tradingstrategies, the user's skills and strategies may be applied to the realmarket.

The playback speeds also provide a logistical tool that permits a userto focus on particular points of interest in the market data. Forexample, a user may fast-forward or jump through mundane market activityto a point of more interest within the simulation. Once at the point ofinterest, the user can freeze the simulation, use the full features ofthe ACSP to study the new point of interest, then resume playback at anyuser selected speed, fast forward, or jump forward or backward towaypoints.

The financial market data contained within the FMRS data blocks is timeordered data typically packed one message after another, and compactedtightly together in order to minimize data file size. The number of realtime messages in a data stream that represents a unit of market isextremely variable. For example, when the market is less active, such asin pre-market or post market conditions, there may only be a few datamessages needed to represent a minute of market time. By contrast,during active market hours, hundreds or even thousands of messages maybe needed to represent one second of market time. In order torealistically replicate market action, during playback the financialdata information contained in these data messages, is played back in atcontrolled rates of speed to accurately reflect the passage of time. Forexample, if the simulator needs to process 200 messages in order to playback one second of market time, it processes those 200 of messages overone second of real time. If the simulator needs to process 1,000messages in order to play back one second of market time, it processesthose 1,000 of messages over one second of real time. In a similarmanner as just described, it processes the data to realisticallyreplicate the passage of any unit of time, whether the unit of time is afraction of a second, a second, a minute, an hour, etc.

As described elsewhere in this application, an aspect of this inventionis that the market simulator can play back the data messages at any userselected playback rate. It can replicate normal market speed, fasterthan normal market speed, and slower than normal market speed, or asfast as the computer system running the simulator can process the data.Also, as described elsewhere in this application, the market simulatorcan freeze the replay of at the market at any moment of market time.

When adjusting the speed of or freezing the playback, the marketsimulator may generate and combine asynchronous messages that reflectsuch controlled, frozen, or uncontrolled rate of playback. For the aboveexample of 1,000 messages per second, if the playback is at half speed,the market simulation would process 500 messages per second. If it wasplayed back at 5 times normal market speed, it would process 5,000messages per second. As described elsewhere in this application, duringa simulation playback, user inputs may be entered and recorded. Theseuser inputs are marked and saved to the correct point in market time.For example, if the playback is at half speed, an input by the userafter one minute of the user's real time from a given point would betreated as entered after 30 seconds of the market time of the playback.Conversely, if the playback is at twice speed, an input by the userafter one minute of the user's real time from a given point would betreated as entered after two minutes of the market time of the playback.In the situation of a frozen playback, all inputs would be treated asentered at the frozen point regardless of when the user enters the inputin real time. In this manner, the FMRS time-synchronizes user inputs inaccordance with the altered playback speed so that a simulation beginsor is otherwise correlated and matched to the correct correspondingmarket time in the market data stream.

FIG. 13 depicts an exemplary GUI for the market simulator 54. As withthe other GUIs described herein, the market simulator GUI of FIG. 13 isan example and may be varied in form and content. As indicated above, auser may enter the GUI for the market simulator options and commands byselection from broader menu options accessible from within the GUI ofthe FMSR, such as by selecting the icon 89 of FIG. 11.

Once within the market simulator GUI, a user may have a variety ofavailable commands to initiate and customize a market simulationplayback. For example, an “FMRS” item in the main tool bar may includesubmenus to select a new simulation, display simulation information, andthe like.

In many respects, the market simulator GUI has common features with themarket replicator GUI. For example, the market simulator GUI has inputbuttons that permit a user to return to the ACSP (86 a), freeze thesimulation (86 b), switch between the simulation mode and the real timemode (86 c), initiate a data recording (86 d), initiate a user metadatarecording (86 e), or begin a new simulation.

In addition, similar to the market recorder, the market simulator GUIalso may include input buttons that permit a user to define userwaypoints (88 a), and freeze points (88 b) during playback (instead ofduring recording). In turn, the market simulator options may be used tocustomize the playback based on such waypoints, freeze points, andalerts. For example, the FMRS may allow the user may set the simulatorto replay the recorded data starting at a waypoint, ending at waypoint,or between two waypoints. Similar replay parameters may be set relatingto freeze points, alerts and other events that have been marked in therecorded data, whether marked during recording or during subsequentplayback. Waypoints may be used to jump to portions of the data, such asjumping to the next or previous waypoint (or other user defined event),jump to a next or previous snap shot, jumping to a named or numberedevent, replaying the data just prior to and subsequent to an alert orwaypoint, and so on.

When buttons are pressed for user initiated waypoints and freeze points,they are often pressed after the point of interest has passed, and aretherefore late by nature. To make the saving of waypoints more timely,the FMRS may buffer and cache the previous minute's data snapshot in thecomputer RAM and create the waypoint from the point in time of the datasnapshot. In a similar manner, the time of a freeze point may be createdwith a timestamp of, for example, one minute earlier. Look back timesother than one minute can be used. As a user increases his or herunderstanding of a given event, it is typical to refine a set of userwaypoints in order to provide better views into points of interest forreplaying and studying the event, and to quicken the research process.

In addition, the market simulator GUI may include a command button (CMD)89 a that may provide access to a menu of playback commands for playingrecordings. Such commands may include, for example, play/stop, pause orfreeze action, fast-forward or fast-reverse, incremental (e.g., jump)forward or incremental reverse, and others. The menu may provide theuser with a choice of whether the learn/teach button 86 e should defaultto the learning mode or the teaching mode when pressed, plus any otheroptions available to the Learn/Teach Switch Component.

The market simulator GUI also may include an information window 89 econtaining additional information regarding the status of a playback.Such information may include time played, time remaining, whether thesimulation is playing as opposed to being paused or frozen, and thelike. As described above, a feature of the market simulator is theability to adjust the playback speed. In one embodiment, therefore, adedicated speed command button 89 c (SPD) may be present in the marketsimulator GUI to provide access to a menu of the various speed optionsdescribed above. In addition, insofar as a user may be testing tradingstrategies by acting on a simulated portfolio, the market simulator GUImay include a dedicated portfolio command button 89 d (PORT) to accessthe various options for trading, altering, and otherwise manipulatingsimulated portfolios.

In connection with setting the various playback parameters, the marketsimulator may include an “Auto-Run” feature accessible in the GUI with acorresponding “AUTO” command button 89 b. Using such an option, theplayback parameters described above may be defined once and then appliedrepeatedly to generate a customized playback with minimal effort.Similar to the above, Auto-Run options may include such features asplayback speed, starting and ending options, waypoints, freeze points,alert point settings, and others. Auto-Run options also may be used toreplay certain significant events selected by the user, which may bereplayed in a loop fashion that replays the event repeatedly untilinterrupted by the user or an automatic time-out feature. Theauto-freeze option may be used in conjunction with the freeze actioncomponent 56, described below, to afford the user additional analysiscapabilities to study market information at the time of the freeze. Yetanother playback option allows a user to automatically replay multiplemarket recordings, in a continuous fashion, one after another. They canbe replayed in a specific order, or randomly, at the user option.

During a market simulation, all of the functions of the ACSP areavailable to the user. The user can change any the settings, colors,chart types, default windows, layouts, etc. The user can also add ordelete user waypoints, freeze points, and alert points. User settingscan be changed any time a recording is played.

Users can also add notes to charts, note lists, and other forms withinthe ACSP. These notes may be time stamped, and can be made either duringthe real time trading session, or during a simulation. As a market eventtakes place, the user might want to make a note to go back andinvestigate the event at a later time. The note could reference aspecific security, or be general in nature. It could contain simply theuser's observation or impression. Similar to a waypoint or freeze point,a note could be linked to a particular market moment. Perhaps a userwould make some sort of observational note, such as “Wow, the pressurewas growing quickly here. Replay the simulator and look at the previousten minutes and see when the change in pressure was first noticeable”.As is readily apparent, notes could be used for a wide variety ofreasons relating to market action. Notes may be kept with the user'sother settings.

Upon the completion of the playback of a market recording, the user maybe prompted to save any changes made to user settings (charts, colors,layouts, etc), waypoints, freeze points, alerts and notes to therecording, etc. It is not the intent of the applicant to list all of thepossible changes that can be saved. That is beyond the scope of thisapplication. It is just to show that any possible change availablewithin the FMRS may be saved at this point. These changes will persistand be available to the user the next time the same market recording isreplayed. In this way, a user can take advantage of any knowledge gainedduring a simulation for future use and refinement. The user may also beprompted to save the market recording with a different name. Doing thiswould allow a user to compare the results of different user settings anduser metadata.

In connection with the ACSP, various information windows 82 a-e (FIGS.10-12.) may be generated. Such information windows may be viewableduring operation of various aspects of the FMRS. The market simulator isintended to offer the full scope of information access regarding asimulation as is available with respect to monitoring real time marketdata with the ACSP. As seen in FIG. 13, therefore, information windows92 a-e may display simulated information identical in nature to theinformation windows 82 a-e available when operating in real time withthe ACSP. In this manner, the market simulator may provide an experienceas nearly identical as is practicable to a real time experience.

D. Freeze Action Component

The freeze action component 56 provides a mechanism for the trader tofreeze the display of real time or simulated market activity in the FMRSor the ACSP. It freezes, at an instant of market time, the state ofsubstantially every piece of information that would otherwise bechanging in the ACSP. This includes, but is not limited to,substantially every trade price, every bid and ask price, the value ofevery study and indicator, and every piece of news. The freeze functiongives a user the ability to research and explore marketinterrelationships in ways that are not available in conventionaltrading systems. The freeze function creates a dynamic portal into astatic market.

Markets often move at a dizzying pace, especially in periods of tradingimbalance, where there is money to be made. This invention freezes themarket and thus provides the trader with the ability to explore,research, and consider any inter-market-relationships, intra-marketrelationships, and cross-market relationships that may be embeddedwithin the financial market data, and that would otherwise not bereadily apparent due to the rapidly changing nature of market activityand market data. It gives the trader time to research news reports,forums, and other sources. It gives the trader time to consider how theyare interpreting the information, what analytics are being used, and howthey are being used. These new discoveries can be made based on theability provided by the present invention to study markets in a frozenstate. Many traders seek out opportunistic relationships among theinteractive and collective behaviors of the market's participants. Atrader may desire to learn how to react to news. A trader also maydesire to learn how to identify and assess key conditions by studyingvarious interrelationships of activity, such as correlations in activityin one stock versus the activity in other stocks, correlations betweenactivity of various stocks within various sectors of the market,correlations in market maker behavior, and so forth. The freeze actioncomponent 56 permits the inspection and discovery of the interactive andcollective effects at work in the market.

During the normal real time trading day, information is updatingcontinuously. For example, even with a portfolio of only 100 stocks in atrader's watch list, the trader can be presented with hundreds, if notthousands, of new pieces of information per second. It is thusimpossible for a human being to mentally digest and assimilate thisquantity of information. Although a conventional ACSP keeps up with thereal time market activity, a trader using a conventional ACSP does nothave the ability in real time to see all the data and associatedanalytical alerts that the trader may have set for triggering.

The freeze action component allows the trader to stop and examine, foras long as the trader desires, any part of the market at a given momentin a given trading period. The ability to freeze the market enhances thetrader's ability to develop the real time skills necessary forsuccessful trading. For example, if an alert set by the trader istriggered, a variety of recognitions and actions should follow for thetrader to actually capitalize on such an event. A trader would firstseek to check on the validity of the alert. A trader may need todetermine which stock generated the alert, view the chart of the alertedstock, check a news item or underlying event triggering the alert, andso on. The FMRS provides the trader opportunities, through research andpractice, to enhance the speed and efficacy of such responses to eventsin the market. As one feature, the market freeze component freezes asimulation in time so the trader may analyze an alert independent of thepressure of real time market activity. In this manner, a trader maypractice and improve the speed and skill of reaction to an alert so thatthe trader may respond more effectively to real market alerts generatedduring actual trading.

The exemplary GUI's of FIGS. 10-13 include a dedicated button input 86 bto execute the freeze action component 56. Although the precise methodof accessing the freeze action component may be varied, the figuresdemonstrate that the freeze action component may be launched from avariety of operational points within the ACSP and/or FMRS.

The FMRS can freeze a real-time market. Having this ability, whencoupled with the market replicator, opens the possibility for a wholenew level of understanding while trading. If the trader finds that hisor her research is too involved to leave the markets frozen, a secondaryACSP may be employed to jump to that freeze point while the primary ACSPis allowed to continue, perhaps on a different monitor. The secondaryACSP can then be run jumped backwards and forwards, to the trader'ssatisfaction, without undoing the interference with the trader's realtrading. Such features are lacking in conventional systems.

For example, as is apparent from FIG. 10, a user may access the freezeaction component 56 from within the ACSP itself while the user ismonitoring real time data. Suppose, for example, a user following realtime market activity using an instance of the secondary ACSP is at thesame time recording and storing market data with the market replicatorcomponent 56. The instance of the secondary ACSP can play back themarket recording, while it is still being made, in near real time modewith only a second or so delay from real time. As technology increases,the near real time mode can have a delay that is indistinguishable fromthe real time market mode.

While a recording is being made by the primary ACSP, the fullfunctionality of the ACSP remains available in any secondary instance.If, for example, the user executes the freeze action component of thesimulator to stop the market replay, or any other playback option orfeature of the ACSP, once the user has completed their investigation,they can catch back up to near real time. This can be accomplished byrunning the simulator at full playback speed from their current locationwithin the simulation, or by navigating directly to the waypoint closestto real time and then running the simulator at full playback speed.

The user may execute the freeze action component using a toolbar buttonor action item 86 b in the ACSP GUI or toolbar. Although the marketfreeze action component may be accessed by other means (e.g., a dropdownmenu, menu tree, or other selection means), an iconic system hasadvantages because an icon button may be accessed quickly and may act asa toggle between freezing the market activity, and either resuming amarket simulation, or monitoring and displaying real-time market data.When the freeze action component is executed, the data displayed withinthe various display windows within the ACSP cease updating. In otherwords, the “frozen” data may present a snapshot of the real time data atthe time the user executes the freeze action component.

A market freeze point can also be created automatically when a userdefined alert is triggered. As one experienced in the art appreciates,alerts can be based upon, but are not limited to, trade prices and orvolumes, market maker bid/ask prices and/or volumes, analytics, charttrend lines, user studies, market transactions, news, other market makeractivity, time coincident inter-market and inter-security activity, etc.There is no practical limit on the number and type of alerts that can bedefined and used to automatically create freeze points. Regardless ofhow a freeze point is created, a balloon tip message may be used toinform the user.

As an example of real time analysis using the ACSP, suppose the user hasnoticed an interesting event transpire in real time and wishes to studythe event. If not already started, the user may start an instance of thesecondary ACSP and execute the freeze action component to freeze themarket activity at the time the event was noticed. The frozen marketprovides another type of simulation capability of the FMRS. For example,as the FMRS user typically would be simultaneously recording the livemarket data, the user may playback the simultaneous recording of thedata, say by a few minutes, to a point just prior to the event, andwatch a replay. A user waypoint or other marking may be generated in therecording to reflect this earlier time. From this waypoint, the user canreplay the interesting market event as many times as the user wishes.For example, the GUI for the ACSP may include a “Replay from Beginning”(e.g., from the beginning of the recording, trading session, or otherknown point in time, such as a user created waypoint) menu or command tobegin replaying the event from the desired point in the recording, evenas the recording of real time data continues. In one embodiment of theFMSR, the GUI may switch to the market simulator GUI (secondary ACSP) ofFIG. 13 so a user may access all the market simulator options andfunctions.

The user may then access all the program windows of the ACSP andassociated data around the time of the event. In this manner, the usermay study what may have caused the event, and, by continuing the replayforward, determine what effect the event may have had on the market, ora sector or security within the market. A user can switch between openwindows, open and/or close new windows, etc. A user also may makechanges to alerts, symbols list, portfolio content, and the like whilethe simulation is frozen. Generally, therefore, the user may navigatethrough and manipulate the broad range of contents within the ACSPwindows and capabilities to identify relationships that otherwise wouldnot be discovered because the market information was updating andchanging too fast for the user to recognize those relationships. Oncethe user understands these various interrelationships, a user may employsuch understanding in trading in the real time markets.

When the user has finished studying the event, the user may switch backto monitoring the real time data of the primary ACSP. For example, asfurther described below, the GUI may include icons or tool bar buttonssuch as to provide a toggle or switch between the real time modes andthe simulation modes. Alternatively, the user can switch from oneinstance of the ACSP to any other open instance of the ACSP using theWindows Taskbar. In one embodiment, the button 86 b itself may act as atoggle between the frozen market and non-frozen market information. Notethe primary

ACSP may continue to run during the freeze action period as well. Forexample, a user may receive a real time alert while analyzing the frozenmarket data in the playback ACSP, and the user may then switch back tomonitoring the real time data in the manner described above. Uponswitching from a simulation to real time, the various data windows wouldbe up-to-date with the current market data so as to reflect real timemarket conditions.

As seen, for example, in FIG. 13, the freeze action component may beaccessed from the market simulator GUI. As part of a given playback ofpreviously recorded data, the recorded market information from thattrading day's activities may be stored in memory. At any point duringthe playback, the freeze action component of the simulator may freezethe market playback at any given instant in time. At such frozen point,the various aspects of the ACSP may be accessed. For example, all of theACSP's program windows are accessible, and each window would convey itsrespective data and market information for that instant of time of thefreeze. Using the ACSP a user can switch between open windows, openand/or close new windows, etc. Anything that a user can do with the ACSPwhen it is in real time mode, or in playback mode, can be done at afreeze point. A user may make changes to alerts, symbols list, portfoliocontent, and the like while the playback is frozen. Generally, there areno limitations to its functionality, and, therefore, the user maynavigate through the broad range of contents within the simulation toexplore, discover, identify, and consider relationships that, withoutthis invention, would otherwise not be discoverable. Without being ableto freeze a market, the market information simply changes too fast forthe user to recognize those relationships. Once the user understandsthese various interrelationships, a user may employ such understandingto trade in real time mode

E. Simulation/Real Time Switch

The simulation/real-time switch component 58 permits a user to practiceon frozen or recorded data without missing real time market events. Whenthe primary ACSP is running and recording in real time mode duringnormal trading hours, the market simulation capabilities of the FMRS arestill fully available. The user may desire to freeze the currentsession, start a market simulation, or to switch to a market simulationalready running. As described in an above example, the user may bealerted to a triggering event that the user may wish to study byentering a simulation and using the freeze action component 56. In suchcase, both the freeze action simulation mode and the real time modewould need to be operative at the same time without interfering witheach other. Similarly, a user may be operating in a simulation mode byreplaying previously recorded market data, with the ACSP monitoring realtime data in the background. Regardless of the nature of the simulation,real time alerts remain functional within the primary ACSP and maytrigger while the user is operating within the simulation.

The following describes two exemplary embodiments for simultaneouslyrunning both the real time mode and the simulation modes of the ACSP. Ina first exemplary embodiment, two or more instances of the ACSP aresimultaneously running on a user's computer—a primary instance of theACSP, and one or more instances of the secondary ACSP. The secondaryACSP can only playback market recordings. It cannot record real timedata. In a second exemplary embodiment, only one instance of the ACSP isrunning on the user's computer. This single instance of the ACSP isreferred to as the primary ACSP. The primary ACSP has full functionalityof all aspects of the ACSP. It can both record real time data, andplayback market recordings. An explanation of each embodiment follows.

The exemplary embodiments do not allow multiple ACSP's to simultaneouslyreceive real-time data. This limitation is for the practical reductionof bandwidth, and as technology changes may not be relevant. Thisapplication considers the possibility of multiple ACSP receivingsimultaneous real-time data.

In the first exemplary embodiment, multiple instances of the ACSP run ona user's computer at the same time. During market trading hours, this isthe preferred embodiment of the FMRS. The instance of the primary ACSPis both recording and displaying real time data. Simultaneously, one ormore secondary, or playback only, instances of the ACSP can be playingback the real time data as it is being recorded. This embodiment hasseveral advantages over the second exemplary embodiment described below,in which the primary instance of the ACSP contains all of the real timedisplay, recording, and freeze components operating within one instanceof the ACSP. For example, this embodiment allows a user with a computersystem that has two or more physical display monitors to display thereal time mode of the primary ACSP on one monitor, and to displaysimulation-only modes of the secondary ACSP on any of the additionalmonitors. There are clear advantages for a trader to always have thereal time market data visibly available, even when running a marketsimulation. It allows him or her to have an eye on, and be moreresponsive to, real time market action. The number of the secondaryinstances of the ACSP that can be simultaneously running on a user'scomputer system is limited essentially only by the computer systemprocessor and memory. Even on computer systems with only one displaymonitor, there are advantages to this embodiment. A user will most oftenhave their ACSP setup differently when looking at a simulation comparedto their ACSP setup when monitoring real time data. Additionally, withalways having a real time version of the ACSP running when a simulationis also running, there is less likelihood of a trader making the mistakeof thinking the simulation is actually the real time version and makingreal time trading decisions based upon the latent simulation data. Thereare many other advantages that accrue to a user that is runningmultiples instances of the ACSP, insofar as the user has more choicesavailable to him or herself compared to fewer choices. A disadvantage ofthis embodiment is that each instance of the ACSP uses computerresources that might otherwise be available to run other software.However, even modestly powered current day personal computers can easilyrun three or four instances of an ACSP along with a reasonablecompliment of other types of software. As computer processor speed andmemory increase, this becomes even less of a disadvantage.

In the second exemplary embodiment, the primary ACSP simultaneouslymonitors, displays, and records real time market data. The display ofthe data can be switched back and forth between real time mode andsimulation mode. In simulation mode, all of the features of thesimulator described elsewhere in this application are available to theuser. An advantage of this embodiment is that it requires fewer computerresources, and can run on older computers. The function of thesimulation/real-time switch 58 is to permit a user to switch between thesimulation mode, and the real time mode, as desired under thecircumstances. If only an instance of the primary ACSP is running, itswitches between modes. If multiple instances of the ACSP are running ittoggles sequentially through them eventually coming back to the instancefrom which they started. Alternatively, in the first exemplaryembodiment described above, if a simulation mode of the ACSP is notalready open, clicking on the toggle would both start a simulation mode,and then switch the user to the instance of the ACSP running it. Also,as described above, the user can switch from one instance of the ACSP,to any other open instance of the ACSP using the Windows Taskbar.

For example, the following sequence may occur: a user may receive a realtime alert, then enter a simulation mode, and via using the freezeaction component, take the opportunity to study the event that triggeredthe alert. If another real time alert is generated, the user may exitthe simulation and return to the real time mode to view a second alert,at which time the previous simulation may freeze in time. The user maythen reenter the previous simulation to further study the first alertfrom the frozen point. In other words, when a user is in the real timemode, a simulation can remain paused so that when the user reenters thesimulation, the user may progress from the point where the user leftoff.

As seen in FIGS. 10-13, the GUIs of the various ACSP and FMRS componentsmay provide a dedicated toolbar button or icon 86 c for switchingbetween real time and simulation modes. Clicking thesimulation/real-time switch icon 86 c may execute the toggle featuresdescribed above that switches the desktop view state between simulationmode(s) and real time mode, and vice versa. Note that in the simulationmode, the real-time data with all of its information windows, continuesto run in the background, and the real-time functions remain active butnot visible to the user. In one embodiment, the layout of the user'sdesktop does not change when the mode is switched. The same charts,times and sales tables, windows, etc. remain open and simply may berepopulated with the data associated to the active mode. The user mayswitch between the simulation mode and real time mode as often as theuser desires.

Similarly, alerts in each mode may be active simultaneously. In realtime mode, typically only real-time alerts are displayed. In thesimulation mode, however, both real time and simulation alerts aredisplayed because a user still would want to receive real time alertsduring a simulation. Various audiovisual parameters (color, sound tone,etc.) may be employed to distinguish between simulation alerts and realtime alerts when the program is in the simulation mode.

F. Learn/Teach Switch Component

The learn/teach switch component 59 permits a user to record, playback,and edit user metadata. As described above, user metadata consists ofspecific time sequential information that tracks user inputs andinteractions with the ACSP, and other communication and browsingsoftware. The metadata may include time stamped layers of notes, voicenarration, mouse movements, and other metadata such as, but not limitedto, images, emails, instant message conversations, web browsing history,etc.

The recording of such user metadata may be useful to a trader indifferent ways. For example, it may be used as a teaching tool. Anexpert trader can put the market replicator in learning mode, and recordall of their user inputs as they interact with the market through theACSP. It will record everything they do as they analyze the market data,react to information, execute trades, interact with colleagues, and soon. The expert can also include voice recordings made while using theACSP. These recordings can be accurately played back during a simulationeven though the simulation is frozen, or played back at some speedeither faster or slower than normal. During the playback of asimulation, a student can put the simulator in teaching mode, and inaddition to playing back all of the real time market data that wasrecorded, it will playback all of the expert's interactions with theACSP. In this way, a student in the art of trading, can replicate andlearn from an expert trader. This is how users can learn from othertraders' workflow and style.

The learn/teach component can also be used as a learning tool. Asanother example, a user can take similar actions as described above forthe expert, except that they would record their own metadata. Duringplayback, in the teaching mode, the user can thoroughly analyze all oftheir previous actions, try to analyze what actions they took that wereright, which ones were wrong, and what they could do to improve theirresults.

The exemplary GUI's of FIGS. 10-13 include a dedicated button input 86 eto execute the learn/teach component 59. Although the precise method ofaccessing the learn/teach component may be varied, the figuresdemonstrate that the learn/teach component may be launched from avariety operational points within the ACSP and/or FMRS.

The user may execute the learn/teach component using a toolbar button oraction item 86 e in the ACSP GUI or toolbar. Although the learn/teachcomponent may be accessed by other means (e.g., a dropdown menu, menutree, or other selection means), an iconic system has advantages becausean icon button may be accessed quickly and may act as a toggle betweenputting the market replicator or market simulator in learning mode orteaching mode.

Learning mode is available either when the market replicator isrecording market data, or when the market simulator is in playback mode.Teaching mode is only available when the market simulator is in playbackmode.

Referring to FIG. 12, the learn/teach button 86 e is activated only whena market replication is being recorded. During a recording, pressing thelearn/teach button 86 e would toggle between turning on the learningmode, and turning it off. Stopping the recording mode of the marketreplicator would automatically turn off the learning mode.

Referring to FIG. 13, the learn/teach button 86 e is active only when amarket replication is being played back by the market simulator. Duringthe simulation, the user has either the learning or teaching modesavailable to be turned on or off. The user can determine which of thesemodes would be toggled on and off, by choosing a default setting from amenu item made available by pressing the CMD button 89 a. If thelearning mode is set as the default, pressing the learn/teach button 86e would toggle between turning on the learning mode, and turning it off.Likewise, if the teaching mode is set as the default, pressing thelearn/teach button 86 e would toggle between turning on the teachingmode, and turning it off. Ending a market simulation would automaticallyturn off whichever mode might be active. Other options pertaining to theLearn/Teach

Switch Component 59 would also be made available to the user by pressingthe CMD button 89 a.

The learning mode can be activated at any time during the making orplayback of a market recording. Learning mode doesn't have to be turnedon for the entire time of a recording or playback. Learning mode can bestarted and stopped multiple times during a recording.

If the user chooses the learning mode when running the market simulator,pressing the learn/teach button 86 e would start a fresh recording ofuser metadata starting at that market time. Any previously recorded usermetadata for that market time period would be completely replaced andoverwritten.

If the user chooses the teaching mode when running the market simulator,pressing the learn/teach button 86 e would start the playback of apreviously recorded learning session. If there was not a previouslyrecorded learning session made for the current market time of thesimulation, no user metadata would display. When the simulation advancesto a market time for which metadata had been previously recorded, theinformation would automatically be displayed. Also, when in teachingmode, the user may insert new user metadata during a simulation. Theuser may select options from the CMD button 89 a menu that allows suchinsertions during simulation playback. Other options available to theuser may include, but are not limited to, editing functions, filteringof which metadata is to be displayed such as notes, voice narration,mouse movements, images, emails, instant message conversations, webbrowsing history, etc.

When any of the above methods are used to turn off the learning mode,the user would be prompted as to whether or not they want to save theuser metadata. If the user did want to save the metadata, it would beadded to the existing market recording metadata blocks. Any previouslysaved user metadata blocks would be overwritten.

In an exemplary embodiment, referring to FIG. 13, the user metadatainformation can be displayed in any one or more of the informationwindows FIGS. 92 b-92 e. During simulator playback, whether in thelearning mode or the teaching mode, a user can edit the previouslyrecorded user metadata. The user can add, change or delete anypreviously recorded user metadata. As described above, various editingoptions are available to the user through menus. Also, the user would beprompted to save any editing. User metadata can be displayed and editedin other ways.

G. Market Data Manager Component

The market data manager component 60 manages the large amounts of dataassociated with the FMRS. Saving sufficient data to simulate financialmarket activity requires large data files that may challenge datastorage systems of personal computing devices (e.g., laptop and desktopcomputers). The data manager 60 provides for separate data management ofdata on network servers and/or on user terminals or computers. Referringagain to FIG. 3, for example, a plurality of user terminals or computers72 may operate as part of a network 70. Each user terminal or computermay have its own storage medium (e.g., memory 16 of FIG. 2). The network70 may also include one or more network storage devices 78 for storingdata on the network external to the user devices 72.

In one embodiment, the market data manager may cause the broad-basedinformation for markets and exchanges to be stored in network serverdatabases. Typically, such storage is performed at the data feed level.Market data may be separately recorded and saved in files delineated bydata feed subscription. Data may be saved in a variety of other ways aswell. As other examples, FMRS files can be initially recorded and savedin separate files for each exchange or for predetermined groups ofexchanges, for each type of financial instrument (stocks, bonds,commodities, etc.) and/or other data categories.

Once the financial market data is stored in one of these initial filesat the data feed level, the market replicator may combine and intermixthe various data as described above to create new files containingblended data across multiple vendors, exchanges or exchange groups,financial instruments, data feeds, and/or combinations thereof. It willbe appreciated that the potential combinations of types of financialinstruments, vendors, exchanges and the like are vast. Libraries ofhistorical data may also be stored for future reference or resale. Oncethe combined files have been generated, the market data manager 60 maybe employed to direct the files to an appropriate storage location. Atthis level of data storage, the data amount is intended to besufficient, as stated above, to simulate a financial market in a mannerthat would be difficult to differentiate from the real time market.

New data files created from the intermixing of existing data files wouldbe created in such a manner as to maintain the time order of the data,even though the data might come from one or more financial exchanges. Ascan be seen, the FMRS can combine previously made recordings, eachcontaining financial information from the same moments in time, and fromdifferent financial markets, into a mega data stream that spans multiplemarkets and multiple exchanges. Separate files may be maintained foreach for each type of data, run simultaneously and intermixed into asingle data stream.

Although the same data management techniques used for storage on networkservers can be employed on user computers and user storage devices,since data storage requirements are very high, the amount of stored datamay provide limitations as to what files would typically be stored onuser devices. For example, a typical file of just US Stocks combiningdata only from the NYSE, AMEX and NASDAQ, stock exchanges, even whenutilizing data compression techniques, can contain over two hundredmillion separate messages, and use over 4 gigabytes of storage space fora 6.5 hour trading session. One can readily see that a comprehensivedata base representing the world markets could consume terabytes ofstorage space annually.

As a practical matter, in contrast to network servers, user deviceswould tend to lack the storage capacity for saving the totality of thefinancial market data. The saved FMRS files on user equipment,therefore, would tend to be more focused based on the user's specificcircumstances. The market data manager may convert or parse the broadmarket data stored on the servers into more focused, user-oriented datafiles that would be suitable for storage on a user device.

For example, the data stored on a user's computer may be limited basedon the user's entitlement to only specific data, such as a subscribeddata stream or streams from one or more particular vendors. In oneembodiment, the user may receive only data for a predetermined list ofstocks and/or other financial instruments of the user's choosing. Forexample, if a given stock is not on the user's symbol list, then theuser would not receive market information for such stock, and therecording would not include that stock. Data stored on user devices mayalso be limited to particular portions of a trading day or based onstoring data at particular increments of times. Data may also limitedbased on financial data type, such as limiting the data to only Level Iand/or Level II data, limiting the data to only certain types of newsevents, and so on. A separate data file also may be devoted to eachsimulation. It will be appreciated that data limitations or delineationsfor storing data on user devices may be defined in a myriad of ways,which then may be inputted to and applied by the market data manager togenerate more user-oriented data files.

Referring again to FIG. 11, the exemplary FMRS GUI may include a toolbarbutton or icon 90 for opening the options of the market data manager 60.A more specific GUI for the market data manager may then be employed.FIG. 14 depicts an exemplary GUI for the market data manager, which maybe used for file manipulation whether the files are to be stored on aserver or a user device. As with the other GUIs described herein, themarket data manager GUI of FIG. 14 is an example and may be varied inform and content.

The market data manager GUI may include an icon or tool bar button 90 a(DIR) for generating and maintaining a system of directories for storingthe various FMRS files. For example, the DIR command may be employed toaccess submenus or options such as: designate particular storage drivesand/or and storage directories; create data folders, file names, andpathways; delete, move, copy, or transmit data files; prioritize orotherwise mark data files by significance, and relatedly lock importantfiles to prevent deletion, editing, transfer of files, etc. A user mayalso define various security parameters to restrict access to datafiles. It will be appreciated that any other operations that would bedesirable or are employed in large-scale data management operations maybe employed by the market data manager.

The exemplary GUI of FIG. 14 also includes a toolbar button or icon 90 b(SIZE) by which a user may define various size parameters or sizelimitations for FMRS files. The SIZE commands may be employed to accesssubmenus or options to define various parameters and restrictionsrelating to file size. A user may limit file sizes for particular filesand/or limit the storage capacity allocated to the FMRS as a whole.Related alerts may be generated to notify a user when individual oroverall file size is approaching some restrictive threshold or maximum.In this vein, the market data manager may include an update feature tosupplement or intermix recorded data with other historical information.A user at a given time may have recorded or been able to record onlycertain FMRS data on the user's own computer system. Subsequently, theuser may need information that had not been recorded previously, forexample, on a day when the user was not running the FMRS on his or hercomputer. When circumstances permit, a user may update or supplement therecorded data with historical information that had not been recorded,regardless of the reason for the initial deficiency. For example,historical information may pertain to different content, such asdifferent symbol sets, that the user has deemed important subsequent tothe initial recording. As another example, a user may have recordedlimited information due to a current storage restriction or lack ofcapacity. The user may then supplement the initial data recording at alater time when storage issues have been obviated.

The exemplary GUI of FIG. 14 also includes a toolbar button or icon 90 c(PURG) by which a user may select various purging options. The PURGcommand may be employed to access submenus or options that allow theuser to remove data files to free up storage. Such purging operationsmay include, for example: purging files older than a particular date;displaying manual selection options to purge files; purging based onsecurity symbol(s); purging based on exchange, vendor, news sources,etc., and others as the user may desire.

The exemplary GUI of FIG. 14 also includes a toolbar button or icon 90 d(AUTO) by which a user may set automatic storage and/or purgingoperations. The AUTO command may be employed to access submenus oroptions that allow the user to set such automatic storage and/or purgingoperations based on any of the above parameters. The AUTO featurepermits a user to define storage and purging operations once, to beapplied automatically when a user begins recording financial marketdata. In one embodiment, as a recording approaches some file sizelimitation, an automatic purging operation may go into effect to purgeunwanted data as defined by the purge parameters to increase the storagecapacity to accommodate the current recording.

For all of the examples cited above in this application, in addition to,or in replacement of, all of the functions available from the toolbaricons, these functions can also be made available through drop down menuselections, short-cut keys, voice commands, or by any other conventionalmeans of inputting commands into a computer system.

III. Conclusion

The above features provide a system and methods for a trader tosuccessfully replicate, simulate, and/or teach another trader to analyzea financial market. In particular, the trader may record, replay and/orreproduce financial market data to generate a simulated market whichwould be difficult to differentiate from the corresponding real timemarket. Once in a simulation mode, the user may input and test varioustrading strategies for efficacy. To do so, a user may play a simulationat real time speed or speeds other than real time depending upon whethera user seeks to study the market data (slow speeds) ,or provide anexpedited or more challenging trading environment. A user also mayfreeze real time or simulated market data to study the market action atand around the freeze point. The user also may readily switch betweenone or more market simulations, and a real time mode. User settings anduser metadata are also saved enabling a user to replicate a previoususer experience within a simulation. The FMSR, therefore, affords atrader the opportunity to generate, study, and test trading strategiesthat may be applied to real time trading in the market.

Although particular embodiments of the invention have been described indetail, it is understood that the invention is not limitedcorrespondingly in scope, but includes all changes, modifications andequivalents coming within the spirit and terms of the claims appendedhereto.

What is claimed is:
 1. A financial market replicator and simulatorcomprising: a market replicator that receives and records one or moreincoming financial market data streams pertaining to a plurality ofsecurities; and a market simulator that plays back the recorded marketdata to simulate a real time financial market corresponding to the oneor more financial market data streams, wherein the market simulatorreceives a user input and alters the playback of the recorded marketdata in accordance with the user input.
 2. The financial marketreplicator and simulator of claim 1, wherein the market replicator andmarket simulator are part of an analytics and charting software programthat a trader uses for accessing real time data.
 3. The financial marketreplicator and simulator of claim 1, wherein the market replicatorrecords the market data onto a computer readable medium encoded in aplurality of data blocks.
 4. The financial market replicator andsimulator of claim 3, wherein the data blocks include at least one ofinitialization blocks, market waypoint blocks, and market streamingblocks.
 5. The financial market replicator and simulator of claim 3,wherein the market simulator plays back the recorded market data bydecoding the plurality of data blocks.
 6. The financial marketreplicator and simulator of claim 5, wherein the data blocks include atleast one of initialization blocks, market waypoint t blocks, and marketstreaming blocks.
 7. The financial market replicator and simulator ofclaim 1, wherein the user input is an input of a setting for controllingthe playback, and the market simulator plays back the recorded marketdata in accordance with the playback setting.
 8. The financial marketreplicator and simulator of claim 1, wherein the user input is an inputof a trade of a security, and the market simulator plays back therecorded market data in a manner that simulates the trade.
 9. Thefinancial market replicator and simulator of claim 1, further comprisinga freeze action component that freezes a display of real time orsimulated market data.
 10. The financial market replicator and simulatorof claim 9, wherein the recorded financial market data remains navigablewith an analytics and charting software program while the display of themarket data is frozen.
 11. The financial market replicator and simulatorof claim 1, further comprising a simulation/real time switch thatswitches between a display of real time market data and simulated marketdata.
 12. The financial market replicator and simulator of claim 11,further comprising a freeze action component that freezes a display ofreal time or simulated market data.
 13. The financial market replicatorand simulator of claim 12, wherein the recorded financial market dataremains navigable with an analytics and charting software program whilethe display of the market data is frozen.
 14. The financial marketreplicator and simulator of claim 1, further comprising a learn/teachswitch that manipulates metadata pertaining to user interaction with ananalytics and charting software program.
 15. The financial marketreplicator and simulator of claim 14, wherein the learn/teach switch atleast one of records, plays back, or edits the metadata.
 16. Thefinancial market replicator and simulator of claim 14, wherein thelearn/teach switch includes a learning mode that records as the metadatauser inputs pertaining to user interaction with the analytics andcharting software program.
 17. The financial market replicator andsimulator of claim 16, wherein the learn/teach switch further includes ateaching mode that plays back interactions of one other than the userwith the analytics and charting software program regarding the userinputs pertaining to the user interaction with the analytics andcharting software program.
 18. The financial market replicator andsimulator of claim 1, further comprising a market data manager thatmanages the data associated with the financial market replicator andsimulator.
 19. The financial market replicator and simulator of claim18, wherein the market data manager manages storage of data files of thedata associated with the financial market replicator and simulator.